From 71820cbcbebf0aafb4ea77ebbea5207c281dd0e9 Mon Sep 17 00:00:00 2001 From: ChrisChinchilla Date: Fri, 23 Oct 2020 16:40:42 +0200 Subject: [PATCH 01/12] Move other quickstarts Signed-off-by: ChrisChinchilla Move configuration from common steps as it no longer matches k8s steps Signed-off-by: ChrisChinchilla Squashed commit of the following: commit cfffc26414de48e6e5d4784f0908aaebb19743fe Author: ChrisChinchilla Date: Mon Oct 26 15:57:52 2020 +0100 wip Signed-off-by: ChrisChinchilla commit e8b9766e3d4838fb3e6eee00e621503864cb1a4c Author: ChrisChinchilla Date: Mon Oct 26 15:53:36 2020 +0100 Move previous guides to clustering quickstart section Signed-off-by: ChrisChinchilla Signed-off-by: ChrisChinchilla Update section Signed-off-by: ChrisChinchilla Fix links Signed-off-by: ChrisChinchilla Fix links add redirects Signed-off-by: ChrisChinchilla Remove aggregator mention Signed-off-by: ChrisChinchilla Remove aggregator mention Signed-off-by: ChrisChinchilla Refactor Signed-off-by: ChrisChinchilla Remove Docker fo rnow Signed-off-by: ChrisChinchilla Remove and correct broken links Signed-off-by: ChrisChinchilla Revert "Remove Docker fo rnow" This reverts commit 7b56da18763397bd9e3169de1a234c6c09de55b4. Fix more broken links Signed-off-by: ChrisChinchilla Draft docker guide Signed-off-by: ChrisChinchilla Remove duplicate content Signed-off-by: ChrisChinchilla Remove embedded cluster note Signed-off-by: ChrisChinchilla Move other quickstarts Signed-off-by: ChrisChinchilla Squashed commit of the following: commit cfffc26414de48e6e5d4784f0908aaebb19743fe Author: ChrisChinchilla Date: Mon Oct 26 15:57:52 2020 +0100 wip Signed-off-by: ChrisChinchilla commit e8b9766e3d4838fb3e6eee00e621503864cb1a4c Author: ChrisChinchilla Date: Mon Oct 26 15:53:36 2020 +0100 Move previous guides to clustering quickstart section Signed-off-by: ChrisChinchilla Signed-off-by: ChrisChinchilla Update section Signed-off-by: ChrisChinchilla Fix links Signed-off-by: ChrisChinchilla Fix links add redirects Signed-off-by: ChrisChinchilla Remove aggregator mention Signed-off-by: ChrisChinchilla Remove aggregator mention Signed-off-by: ChrisChinchilla Refactor Signed-off-by: ChrisChinchilla Remove and correct broken links Signed-off-by: ChrisChinchilla Respond to feedback Signed-off-by: ChrisChinchilla --- netlify.toml | 8 + site/content/_index.md | 2 +- site/content/cluster/_index.md | 6 + site/content/cluster/binaries_cluster.md | 260 ++++++++++ site/content/cluster/docker_cluster.md | 45 ++ site/content/cluster/kubernetes_cluster.md | 95 ++++ site/content/docs.md | 43 -- site/content/how_to/cluster_hard_way.md | 238 --------- site/content/how_to/use_as_tsdb.md | 2 +- .../includes/getting-started/common-steps.md | 179 +++++++ .../includes/quickstart/common-steps.md | 432 ++++++++++++++++ site/content/quickstart/binaries.md | 97 ++++ site/content/quickstart/docker.md | 460 +----------------- site/content/troubleshooting/_index.md | 2 +- 14 files changed, 1128 insertions(+), 741 deletions(-) create mode 100644 site/content/cluster/_index.md create mode 100644 site/content/cluster/binaries_cluster.md create mode 100644 site/content/cluster/docker_cluster.md create mode 100644 site/content/cluster/kubernetes_cluster.md delete mode 100644 site/content/docs.md delete mode 100644 site/content/how_to/cluster_hard_way.md create mode 100644 site/content/includes/getting-started/common-steps.md create mode 100644 site/content/includes/quickstart/common-steps.md create mode 100644 site/content/quickstart/binaries.md diff --git a/netlify.toml b/netlify.toml index 9269963a95..e55db17600 100644 --- a/netlify.toml +++ b/netlify.toml @@ -32,6 +32,14 @@ from = "/docs/how_to/single_node" to = "docs/quickstart" +[[redirects]] + from="/docs/how_to/cluster_hard_way" + to="/docs/getting_started/binaries_cluster" + +[[redirects]] + from="docs/how_to/kubernetes" + to="/docs/getting_started/kubernetes_cluster" + # TODO: Fix this with new content type [[redirects]] from = "/talks" diff --git a/site/content/_index.md b/site/content/_index.md index 7272ba3512..cfebb18ed8 100644 --- a/site/content/_index.md +++ b/site/content/_index.md @@ -28,7 +28,7 @@ M3 has several features, provided as discrete components, which make it an ideal Getting started with M3 is as easy as following one of the How-To guides. - [Single M3DB node deployment](/docs/quickstart) -- [Clustered M3DB deployment](/docs/how_to/cluster_hard_way) +- [Clustered M3DB deployment](/docs/cluster) - [M3DB on Kubernetes](/docs/operator) - [Isolated M3Query on deployment](/docs/how_to/query) diff --git a/site/content/cluster/_index.md b/site/content/cluster/_index.md new file mode 100644 index 0000000000..af52c427a7 --- /dev/null +++ b/site/content/cluster/_index.md @@ -0,0 +1,6 @@ ++++ +title = "Create a Cluster" +date = 2020-04-01T19:26:56-04:00 +weight = 2 +chapter = true ++++ \ No newline at end of file diff --git a/site/content/cluster/binaries_cluster.md b/site/content/cluster/binaries_cluster.md new file mode 100644 index 0000000000..9233436dfc --- /dev/null +++ b/site/content/cluster/binaries_cluster.md @@ -0,0 +1,260 @@ +--- +linktitle: "Binaries" +weight: 2 +--- + +# Creating an M3 Cluster with Binaries + +This guide shows you the steps involved in creating an M3 cluster using M3 binaries, typically you would automate this with infrastructure as code tools such as Terraform or [Kubernetes](/docs/cluster/kubernetes). + +{{% notice note %}} +This guide assumes you have read the [quickstart](/docs/quickstart), and builds upon the concepts in that guide. +{{% /notice %}} + +## M3 Architecture + +Here's a typical M3 deployment: + + + +![Typical Deployment](/cluster_architecture.png) + +An M3 deployment typically has two main node types: + +- **Coordinator node**: `m3coordinator` nodes coordinate reads and writes across all nodes in the cluster. It's a lightweight process, and does not store any data. This role typically runs alongside a Prometheus instance, or is part of a collector agent such as statsD. +- **Storage node**: The `m3dbnode` processes are the workhorses of M3, they store data and serve reads and writes. + +And exposes two ports: + +- `7201` to manage the cluster topology, you make most API calls to this endpoint +- `7203` for Prometheus to scrape the metrics produced by M3DB and M3Coordinator + +## Prerequisites + +M3 uses [etcd](https://etcd.io/) as a distributed key-value storage for the following functions: + +- Update cluster configuration in realtime +- Manage placements for distributed and sharded clusters + +## Download and Install a Binary + +You can download the latest release as [pre-compiled binaries from the M3 GitHub page](https://github.com/m3db/m3/releases/latest). Inside the expanded archive are binaries for `m3dbnode`, which combines a coordinator and storage node, and a binary for `m3coordinator`, which is a standalone coordinator node. + +## Build from Source + +### Prerequisites + +- [Go 1.10 or higher](https://golang.org/dl/) +- [Make](https://www.gnu.org/software/make/) + +### Build + +[Clone the codebase](https://github.com/m3db/m3) and run `make m3dbnode` to generate a binary for a combination coordinator and storage node, or `make m3coordinator` to generate a binary for a standalone coordinator node. + +## Provision a Host + +Enough background, let's create a real cluster! + +M3 in production can run on local or cloud-based VMs, or bare-metal servers. M3 supports all popular Linux distributions (Ubuntu, RHEL, CentOS), and [let us know](https://github.com/m3db/m3/issues/new/choose) if you have any issues with your preferred distribution. + +### Network + +{{% notice tip %}} +If you use AWS or GCP, we recommend you use static IPs so that if you need to replace a host, you don't have to update configuration files on all the hosts, but decommission the old seed node and provision a new seed node with the same host ID and static IP that the old seed node had. If you're using AWS you can use an [Elastic Network Interface](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html) on a Virtual Private Cloud (VPC) and for GCP you can use an [internal static IP address](https://cloud.google.com/compute/docs/ip-addresses/reserve-static-internal-ip-address). +{{% /notice %}} + +This example creates three static IP addresses for three storage nodes, using the embedded coordinator. + +This guide assumes you have host names configured, i.e., running `hostname` on a host in the cluster returns the host ID you use when creating the cluster placement. + +{{% notice tip %}} +When using GCP the name of your instance is the host name. When you create an instance, click _Management, disks, networking, SSH keys_, under _Networking_, click the default interface, click the _Primary internal IP_ drop down, select _Reserve a static internal IP address_, give it an appropriate name and description, and use _Assign automatically_. +{{% /notice %}} + +{{% notice tip %}} +When using AWS, you can use the host name supplied for the provisioned VM as your host ID, or use the `environment` host ID resolver and pass the host ID when launching the database process with an environment variable. +{{% /notice %}} + +For example, if you used `M3DC_HOST_ID` for the environment variable name, use the following in your configuration: + +```yaml +hostID: + resolver: hostname + - ${M3DC_HOST_ID:""} +``` + +Then start the `m3dbnode` process with: + +{{< tabs name="start_container" >}} +{{% tab name="Pre-built binary" %}} + +```shell +M3DB_HOST_ID=m3db001 m3dbnode -f +``` + +{{% notice info %}} +Depending on your operating system setup, you might need to prefix the command with `sudo`. +{{% /notice %}} + +{{% /tab %}} +{{% tab name="Output" %}} + + + + + +![Docker pull and run](/docker-install.gif) + +{{% /tab %}} +{{< /tabs >}} + +### Kernel Configuration + +Depending on the default limits of your bare-metal machine or VM, M3 may need some Kernel tweaks to run as efficiently as possible, and [we recommend you review those](/docs/operational_guide/kernel_configuration) before running M3 in production. + +## Configuration files + +You configure each M3 component by passing the location of a YAML file with the `-f` argument. + +The file groups configuration into `coordinator` or `db` sections that represent the `M3Coordinator` and `M3DB` instances of single-node cluster. + +{{% notice tip %}} +You can find more information on configuring M3DB in the [operational guides section](/docs/operational_guide/). +{{% /notice %}} + +{{% notice note %}} +The steps in this guide have the following 3 seed nodes, you need to change your configuration to suit the details of yours, including the details of an etcd cluster in the `etcdClusters` section of the M3 configuration file. +{{% /notice %}} + +- m3db001 (Region=us-east1, Zone=us-east1-a, Static IP=10.142.0.1) +- m3db002 (Region=us-east1, Zone=us-east1-b, Static IP=10.142.0.2) +- m3db003 (Region=us-east1, Zone=us-east1-c, Static IP=10.142.0.3) + +### M3DB node + +[Start with the M3DB configuration template](https://github.com/m3db/m3/blob/master/src/dbnode/config/m3dbnode-cluster-template.yml) and change it to suit your cluster. + +The example below connects to an etcd instance in a zone called `eu-1` +This example updates the `service` and `seedNodes` sections to match the node details above: + + + +```yaml +config: + service: + env: default_env + zone: embedded + service: m3db + cacheDir: /var/lib/m3kv + etcdClusters: + - zone: embedded + endpoints: + - 10.142.0.1:2379 + - 10.142.0.2:2379 + - 10.142.0.3:2379 +``` + +## Start the storage nodes + +Start each seed node in the cluster using the same configuration file, and adjusting the `M3DB_HOST_ID` value to match the host name. + +```shell +M3DB_HOST_ID=m3db001 m3dbnode -f +``` + +{{% notice tip %}} +You can daemon-ize the node startup process using your favorite utility such as systemd, init.d, or supervisor. +{{% /notice %}} + +## Create Namespace and Initialize Placement + + + + + +This guide uses the _{{% apiendpoint %}}database/create_ endpoint that creates a namespace, and the placement if it doesn't already exist based on the `type` argument. + +You can create [placements](/docs/operational_guide/placement_configuration/) and [namespaces](/docs/operational_guide/namespace_configuration/#advanced-hard-way) separately if you need more control over their settings. + +The `namespaceName` argument must match the namespace in the `local` section of the `M3Coordinator` YAML configuration. If you [add any namespaces](/docs/operational_guide/namespace_configuration) you also need to add them to the `local` section of `M3Coordinator`'s YAML configuration. + +In the example below, the configuration for each host matches the details outlined above for the three nodes used. `isolationGroup` specifies how the cluster places shards to avoid more than one replica of a shard appearing in the same replica group. You should use at least as many isolation groups as your replication factor. This example uses the availability zones `us-east1-a`, `us-east1-b`, `us-east1-c` as the isolation groups which matches our replication factor of 3. [Read more details in this guide](/docs/operational_guide/replication_and_deployment_in_zones). + +{{< tabs name="database_create" >}} +{{% tab name="Command" %}} + + + +```shell +curl -X POST {{% apiendpoint %}}database/create -d '{ + "type": "cluster", + "namespaceName": "default", + "retentionTime": "48h", + "numShards": "1024", + "replicationFactor": "3", + "hosts": [ + { + "id": "m3db001", + "isolationGroup": "us-east1-a", + "zone": "embedded", + "weight": 100, + "address": "10.142.0.1", + "port": 9000 + }, + { + "id": "m3db002", + "isolationGroup": "us-east1-b", + "zone": "embedded", + "weight": 100, + "address": "10.142.0.2", + "port": 9000 + }, + { + "id": "m3db003", + "isolationGroup": "us-east1-c", + "zone": "embedded", + "weight": 100, + "address": "10.142.0.3", + "port": 9000 + } + ] +}' +``` + +{{% /tab %}} +{{% tab name="Output" %}} + +```shell +20:10:12.911218[I] updating database namespaces [{adds [default]} {updates []} {removals []}] +20:10:13.462798[I] node tchannelthrift: listening on 0.0.0.0:9000 +20:10:13.463107[I] cluster tchannelthrift: listening on 0.0.0.0:9001 +20:10:13.747173[I] node httpjson: listening on 0.0.0.0:9002 +20:10:13.747506[I] cluster httpjson: listening on 0.0.0.0:9003 +20:10:13.747763[I] bootstrapping shards for range starting ... +... +20:10:13.757834[I] bootstrap finished [{namespace metrics} {duration 10.1261ms}] +20:10:13.758001[I] bootstrapped +20:10:14.764771[I] successfully updated topology to 3 hosts +``` + +{{% /tab %}} +{{< /tabs >}} + +If you need to setup multiple namespaces, you can run the command above above multiple times with different namespace configurations. + +### Replication factor + +We recommend a replication factor of **3**, with each replica spread across failure domains such as a physical server rack, data center or availability zone. Read our [replication factor recommendations](/docs/operational_guide/replication_and_deployment_in_zones) for more details. + +### Shards + +Read the [placement configuration guide](/docs/operational_guide/placement_configuration) to determine the appropriate number of shards to specify. + +{{% fileinclude file="getting-started/common-steps.md" %}} + + diff --git a/site/content/cluster/docker_cluster.md b/site/content/cluster/docker_cluster.md new file mode 100644 index 0000000000..13e7b3fedc --- /dev/null +++ b/site/content/cluster/docker_cluster.md @@ -0,0 +1,45 @@ +--- +linktitle: "Docker" +weight: 3 +draft: true +--- +# Creating an M3 Cluster with Docker + +This guide shows you the steps involved in creating an M3 cluster using Docker containers, typically you would automate this with infrastructure as code tools such as Terraform or Kubernetes. + +{{% notice note %}} +This guide assumes you have read the [quickstart](/docs/quickstart), and builds upon the concepts in that guide. +{{% /notice %}} + +## M3 Architecture + +Here's a typical M3 deployment: + + + +![Typical Deployment](/cluster_architecture.png) + +An M3 deployment typically has two main node types: + +- **Coordinator node**: `m3coordinator` nodes coordinate reads and writes across all nodes in the cluster. It's a lightweight process, and does not store any data. This role typically runs alongside a Prometheus instance, or is part of a collector agent. +- **Storage node**: The `m3dbnode` processes are the workhorses of M3, they store data and serve reads and writes. + +And exposes two ports: + +- `7201` to manage the cluster topology, you make most API calls to this endpoint +- `7203` for Prometheus to scrape the metrics produced by M3DB and M3Coordinator + +## Prerequisites + +M3 uses [etcd](https://etcd.io/) as a distributed key-value storage for the following functions: + +- Update cluster configuration in realtime +- Manage placements for distributed and sharded clusters + +{{% notice note %}} +M3 storage nodes have an embedded etcd server you can use for small test clusters which we call a **Seed Node** when run this way. See the `etcdClusters` section of [this example configuration file](https://github.com/m3db/m3/blob/master/src/dbnode/config/m3dbnode-local-etcd.yml). +{{% /notice %}} + +## Download and Install a Binary + +You can download the latest release as [pre-compiled binaries from the M3 GitHub page](https://github.com/m3db/m3/releases/latest). Inside the expanded archive are binaries for `m3dbnode`, which combines a coordinator and storage node, and a binary for `m3coordinator`, which is a standalone coordinator node. diff --git a/site/content/cluster/kubernetes_cluster.md b/site/content/cluster/kubernetes_cluster.md new file mode 100644 index 0000000000..b61ae4894b --- /dev/null +++ b/site/content/cluster/kubernetes_cluster.md @@ -0,0 +1,95 @@ +--- +linktitle: "Kubernetes" +weight: 1 +--- + +# Creating an M3 Cluster with Kubernetes + +This guide shows you how to create an M3 cluster of 3 nodes, designed to run locally on the same machine. It is designed to show you how M3 and Kubernetes can work together, but not as a production example. + +{{% notice note %}} +This guide assumes you have read the [quickstart](/docs/quickstart), and builds upon the concepts in that guide. +{{% /notice %}} + +{{% notice tip %}} +We recommend you use [our Kubernetes operator](https://operator.m3db.io/) to deploy M3 to a cluster. It is a more streamlined setup that uses [custom resource definitions](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) to automatically handle operations such as managing cluster placements. +{{% /notice %}} + + +## Prerequisites + +- A running Kubernetes cluster. + - For local testing, you can use [minikube](https://kubernetes.io/docs/tasks/tools/install-minikube/), [Docker desktop](https://www.docker.com/products/docker-desktop), or [we have a script](https://raw.githubusercontent.com/m3db/m3db-operator/master/scripts/kind-create-cluster.sh) you can use to start a 3 node cluster with [Kind](https://kind.sigs.k8s.io/docs/user/quick-start/). +- To use the M3DB operator chart, you need [Helm](https://helm.sh/) + +## Create An etcd Cluster + +M3 stores its cluster placements and runtime metadata in [etcd](https://etcd.io) and needs a running cluster to communicate with. + +We have example services and stateful sets you can use, but feel free to use your own configuration and change any later instructions accordingly. + +```shell +kubectl apply -f https://github.com/m3db/m3db-operator/blob/v0.9.0/example/etcd/etcd-minikube.yaml +``` + +If the etcd cluster is running on your local machine, update your _/etc/hosts_ file to match the domains specified in the `etcd` `--initial-cluster` argument. For example to match the `StatefulSet` declaration in the _etcd-minikube.yaml_ above, that is: + +```text +$(minikube ip) etcd-0.etcd +$(minikube ip) etcd-1.etcd +$(minikube ip) etcd-2.etcd +``` + +Verify that the cluster is running with something like the Kubernetes dashboard, or the command below: + +```shell +kubectl exec etcd-0 -- env ETCDCTL_API=3 etcdctl endpoint health +``` + +## Install the Operator with Helm + +Add the M3 operator repository: + +```shell +helm repo add m3db https://m3-helm-charts.storage.googleapis.com/stable +``` + +Install the M3 operator chart: + +```shell +helm install m3db-operator m3db/m3db-operator +``` + +## Create an M3 Cluster + +The following creates an M3 cluster with 3 replicas of data across 256 shards that connects to the 3 available etcd endpoints. + +It creates three isolated groups for nodes, each with one node instance. In a production environment you can use a variety of different options to define how nodes are spread across groups based on factors such as resource capacity, or location. + +It creates namespaces in the cluster with the `namespaces` parameter. You can use M3-provided presets, or define your own. This example creates a namespace with the `10s:2d` preset. + +The cluster derives pod identity from the `podIdentityConfig` parameter, which in this case is the UID of the Pod. + +[Read more details on all the parameters in the Operator API docs](https://operator.m3db.io/api/). + +```shell +kubectl apply -f https://github.com/m3db/m3db-operator/blob/v0.9.0/example/m3db-local.yaml +``` + +Verify that the cluster is running with something like the Kubernetes dashboard, or the command below: + +```shell +kubectl exec simple-cluster-rep2-0 -- curl -sSf localhost:9002/health +``` + +## Deleting a Cluster + +Delete the M3 cluster using kubectl: + +```shell +kubectl delete m3dbcluster simple-cluster +``` + +By default, the operator uses [finalizers](https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#finalizers) to delete the placement and namespaces associated with a cluster before the custom resources. If you do not want this behavior, set `keepEtcdDataOnDelete` to `true` in the cluster configuration. + +{{% fileinclude file="quickstart/common-steps.md" %}} \ No newline at end of file diff --git a/site/content/docs.md b/site/content/docs.md deleted file mode 100644 index 4446d83bf7..0000000000 --- a/site/content/docs.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: M3 Introduction -weight: 1 -permalink: /docs/ ---- - - -## About - -After using open-source metrics solutions and finding issues with them at scale – such as reliability, cost, and -operational complexity – [M3](https://github.com/m3db/m3) was created from the ground up to provide Uber with a -native, distributed time series database, a highly-dynamic and performant aggregation service, a query engine, and -other supporting infrastructure. - -## Key Features - -M3 has several features, provided as discrete components, which make it an ideal platform for time series data at scale: - -- A distributed time series database, [M3DB](/docs/m3db/), that provides scalable storage for time series data and a reverse index. -- A sidecar process, [M3Coordinator](/docs/integrations/prometheus), that allows M3DB to act as the long-term storage for Prometheus. -- A distributed query engine, [M3Query](/docs/m3query), with native support for PromQL and Graphite (M3QL coming soon). - -- An aggregation tier, M3Aggregator, that runs as a dedicated metrics aggregator/downsampler allowing metrics to be stored at various retentions at different resolutions. - -## Getting Started - -**Note:** Make sure to read our [Operational Guides](/docs/operational_guide) before running in production! - -Getting started with M3 is as easy as following one of the How-To guides. - -- [Single M3DB node deployment](/docs/quickstart) -- [Clustered M3DB deployment](/docs/how_to/cluster_hard_way) -- [M3DB on Kubernetes](/docs/operator) -- [Isolated M3Query on deployment](/docs/how_to/query) - -## Support - -For support with any issues, questions about M3 or its operation, or to leave any comments, the team can be -reached in a variety of ways: - -- [Slack (main chat channel)](http://bit.ly/m3slack) -- [Email](https://groups.google.com/forum/#!forum/m3db) -- [Github issues](https://github.com/m3db/m3/issues) diff --git a/site/content/how_to/cluster_hard_way.md b/site/content/how_to/cluster_hard_way.md deleted file mode 100644 index 9e714d1c78..0000000000 --- a/site/content/how_to/cluster_hard_way.md +++ /dev/null @@ -1,238 +0,0 @@ ---- -title: M3DB Cluster Deployment, Manually (The Hard Way) -menuTitle: Manual Cluster Deployment -weight: 2 ---- - -This document lists the manual steps involved in deploying a M3DB cluster. In practice, you'd be automating this using Terraform or using Kubernetes rather than doing this by hand; guides for doing so are available under the How-To section. - -## Primer Architecture - -A quick primer on M3DB architecture. Here’s what a typical deployment looks like: - -![Typical Deployment](/cluster_architecture.png) - -A few different things to highlight about the diagram: - -### Role Type - -There are three ‘role types’ for a m3db deployment - - -- Coordinator: `m3coordinator` serves to coordinate reads and writes across all hosts in the cluster. It’s a lightweight process, and does not store any data. This role would typically be run alongside a Prometheus instance, or be baked into a collector agent. -- Storage Node: `m3dbnode` processes running on these hosts are the workhorses of the database, they store data; and serve reads and writes. -- Seed Node: First and foremost, these hosts are storage nodes themselves. In addition to that responsibility, they run an embedded ETCD server. This is to allow the various M3DB processes running across the cluster to reason about the topology/configuration of the cluster in a consistent manner. - -**Note**: In very large deployments, you’d use a dedicated ETCD cluster, and only use M3DB Storage and Coordinator Nodes - -## Provisioning - -Enough background, lets get you going with a real cluster! Provision your host (be it VMs from AWS/GCP/etc) or bare-metal servers in your DC with the latest and greatest flavour of Linux you favor. M3DB works on all popular distributions - Ubuntu/RHEL/CentOS, let us know if you run into issues on another platform and we’ll be happy to assist. - -### Network - -If you’re using AWS or GCP it is highly advised to use static IPs so that if you need to replace a host, you don’t have to update your configuration files on all the hosts, you simply decomission the old seed node and provision a new seed node with the same host ID and static IP that the old seed node had. For AWS you can use a [Elastic Network Interface](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html) on a VPC and for GCP you can simply use an [internal static IP address](https://cloud.google.com/compute/docs/ip-addresses/reserve-static-internal-ip-address). - -In this example you will be creating three static IP addresses for the three seed nodes. - -Further, we assume you have hostnames configured correctly too. i.e. running `hostname` on a host in the cluster returns the host ID you'll be using when specifying instance host IDs when creating the M3DB cluster placement. E.g. running `hostname` on a node `m3db001` should return it's host ID `m3db001`. - -In GCP the name of your instance when you create it will automatically be it's hostname. When you create an instance click "Management, disks, networking, SSH keys" and under "Networking" click the default interface and click the "Primary internal IP" drop down and select "Reserve a static internal IP address" and give it a name, i.e. `m3db001`, a description that describes it's a seed node IP address and use "Assign automatically". - -In AWS it might be simpler to just use whatever the hostname you get for the provisioned VM as your host ID when specifying M3DB placement. Either that or use the `environment` host ID resolver and pass your host ID when launching the database process with an environment variable. You can set to the host ID and specify the environment variable name in config as `envVarName: M3DB_HOST_ID` if you are using an environment variable named `M3DB_HOST_ID`. - -Relevant config snippet: - -```yaml -hostID: - resolver: environment - envVarName: M3DB_HOST_ID -``` - -Then start your process with: - -```shell -M3DB_HOST_ID=m3db001 m3dbnode -f config.yml -``` - -### Kernel - -Ensure you review our [recommended kernel configuration](/docs/operational_guide/kernel_configuration) before running M3DB in production as M3DB may exceed the default limits for some default kernel values. - -## Config files - -We wouldn’t feel right to call this guide, “The Hard Way” and not require you to change some configs by hand. - -**Note**: the steps that follow assume you have the following 3 seed nodes - make necessary adjustment if you have more or are using a dedicated ETCD cluster. Example seed nodes: - -- m3db001 (Region=us-east1, Zone=us-east1-a, Static IP=10.142.0.1) -- m3db002 (Region=us-east1, Zone=us-east1-b, Static IP=10.142.0.2) -- m3db003 (Region=us-east1, Zone=us-east1-c, Static IP=10.142.0.3) - -We’re going to start with the M3DB config template and modify it to work for your cluster. Start by downloading the [config](https://github.com/m3db/m3/blob/master/src/dbnode/config/m3dbnode-cluster-template.yml). Update the config ‘service’ and 'seedNodes' sections to read as follows: - -```yaml -config: - service: - env: default_env - zone: embedded - service: m3db - cacheDir: /var/lib/m3kv - etcdClusters: - - zone: embedded - endpoints: - - 10.142.0.1:2379 - - 10.142.0.2:2379 - - 10.142.0.3:2379 - seedNodes: - initialCluster: - - hostID: m3db001 - endpoint: http://10.142.0.1:2380 - - hostID: m3db002 - endpoint: http://10.142.0.2:2380 - - hostID: m3db003 - endpoint: http://10.142.0.3:2380 -``` - -## Start the seed nodes - -Transfer the config you just crafted to each host in the cluster. And then starting with the seed nodes, start up the m3dbnode process: - -```shell -m3dbnode -f -``` - -**Note**, remember to daemon-ize this using your favourite utility: systemd/init.d/supervisor/etc - -## Create Namespace and Initialize Topology - -The recommended way to create a namespace and initialize a topology is to use the `/api/v1/database/create` api. Below is an example. - -**Note:** In order to create a more custom setup, please refer to the [namespace configuration](/docs/operational_guide/namespace_configuration) and -[placement configuration](/docs/operational_guide/placement_configuration) guides, though this is discouraged. - -```shell -curl -X POST http://localhost:7201/api/v1/database/create -d '{ - "type": "cluster", - "namespaceName": "1week_namespace", - "retentionTime": "168h", - "numShards": "1024", - "replicationFactor": "3", - "hosts": [ - { - "id": "m3db001", - "isolationGroup": "us-east1-a", - "zone": "embedded", - "weight": 100, - "address": "10.142.0.1", - "port": 9000 - }, - { - "id": "m3db002", - "isolationGroup": "us-east1-b", - "zone": "embedded", - "weight": 100, - "address": "10.142.0.2", - "port": 9000 - }, - { - "id": "m3db003", - "isolationGroup": "us-east1-c", - "zone": "embedded", - "weight": 100, - "address": "10.142.0.3", - "port": 9000 - } - ] -}' -``` - -**Note:** Isolation group specifies how the cluster places shards to avoid more than one replica of a shard appearing in the same replica group. As such you must be using at least as many isolation groups as your replication factor. In this example we use the availibity zones `us-east1-a`, `us-east1-b`, `us-east1-c` as our isolation groups which matches our replication factor of 3. - -Shortly after, you should see your node complete bootstrapping: - -```shell -20:10:12.911218[I] updating database namespaces [{adds [default]} {updates []} {removals []}] -20:10:13.462798[I] node tchannelthrift: listening on 0.0.0.0:9000 -20:10:13.463107[I] cluster tchannelthrift: listening on 0.0.0.0:9001 -20:10:13.747173[I] node httpjson: listening on 0.0.0.0:9002 -20:10:13.747506[I] cluster httpjson: listening on 0.0.0.0:9003 -20:10:13.747763[I] bootstrapping shards for range starting ... -... -20:10:13.757834[I] bootstrap finished [{namespace metrics} {duration 10.1261ms}] -20:10:13.758001[I] bootstrapped -20:10:14.764771[I] successfully updated topology to 3 hosts -``` - -Once a namespace has finished bootstrapping, you must mark it as ready before receiving traffic by using the _{{% apiendpoint %}}namespace/ready_. - -{{< tabs name="ready_namespaces" >}} -{{% tab name="Command" %}} - -{{% codeinclude file="how_to/ready-namespace.sh" language="shell" %}} - -{{% /tab %}} -{{% tab name="Output" %}} - -```json -{ - "ready": true -} -``` - -{{% /tab %}} -{{< /tabs >}} - -If you need to setup multiple namespaces, you can run the above `/api/v1/database/create` command multiple times with different namespace configurations. - -### Replication factor (RF) - -Recommended is RF3, where each replica is spread across failure domains such as a rack, data center or availability zone. See [Replication Factor Recommendations](/docs/operational_guide/replication_and_deployment_in_zones) for more specifics. - -### Shards - -See [placement configuration](/docs/operational_guide/placement_configuration) to determine the appropriate number of shards to specify. - -## Test it out - -Now you can experiment with writing tagged metrics: - -```shell -curl -sS -X POST localhost:9003/writetagged -d '{ - "namespace": "metrics", - "id": "foo", - "tags": [ - { - "name": "city", - "value": "new_york" - }, - { - "name": "endpoint", - "value": "/request" - } - ], - "datapoint": { - "timestamp": '"$(date "+%s")"', - "value": 42.123456789 - } -}' -``` - -And reading the metrics you've written: - -```shell -curl -sS -X POST http://localhost:9003/query -d '{ - "namespace": "metrics", - "query": { - "regexp": { - "field": "city", - "regexp": ".*" - } - }, - "rangeStart": 0, - "rangeEnd": '"$(date "+%s")"' -}' | jq . -``` - -## Integrations - -[Prometheus as a long term storage remote read/write endpoint](/docs/integrations/prometheus). diff --git a/site/content/how_to/use_as_tsdb.md b/site/content/how_to/use_as_tsdb.md index 3317775d54..a0ae2399b7 100644 --- a/site/content/how_to/use_as_tsdb.md +++ b/site/content/how_to/use_as_tsdb.md @@ -114,7 +114,7 @@ For more details on the compression scheme and its limitations, review [the docu #### M3DB setup -For more advanced setups, it's best to follow the guides on how to configure an M3DB cluster [manually](/docs/how_to/cluster_hard_way) or [using Kubernetes](/docs/operator). However, this tutorial will walk you through configuring a single node setup locally for development. +For more advanced setups, it's best to follow the guides on how to configure an M3DB cluster [manually](/docs/cluster/binaries_cluster) or [using Kubernetes](/docs/cluster/kubernetes_cluster). However, this tutorial will walk you through configuring a single node setup locally for development. First, run the following command to pull the latest M3DB image: diff --git a/site/content/includes/getting-started/common-steps.md b/site/content/includes/getting-started/common-steps.md new file mode 100644 index 0000000000..114a2dcd53 --- /dev/null +++ b/site/content/includes/getting-started/common-steps.md @@ -0,0 +1,179 @@ +## Writing and Querying Metrics + +### Writing Metrics + +M3 supports ingesting [statsd](https://github.com/statsd/statsd#usage) and [Prometheus](https://prometheus.io/docs/concepts/data_model/) formatted metrics. + +This quickstart focuses on Prometheus metrics which consist of a value, a timestamp, and tags to bring context and meaning to the metric. + +You can write metrics using one of two endpoints: + +- _[{{% apiendpoint %}}prom/remote/write](/docs/m3coordinator/api/remote/)_ - Write a Prometheus remote write query to M3DB with a binary snappy compressed Prometheus WriteRequest protobuf message. +- _{{% apiendpoint %}}json/write_ - Write a JSON payload of metrics data. This endpoint is quick for testing purposes but is not as performant for production usage. + +For this quickstart, use the _{{% apiendpoint %}}json/write_ endpoint to write a tagged metric to M3 with the following data in the request body, all fields are required: + +- `tags`: An object of at least one `name`/`value` pairs +- `timestamp`: The UNIX timestamp for the data +- `value`: The value for the data, can be of any type + +{{% notice tip %}} +The examples below use `__name__` as the name for one of the tags, which is a Prometheus reserved tag that allows you to query metrics using the value of the tag to filter results. +{{% /notice %}} + +{{% notice tip %}} +Label names may contain ASCII letters, numbers, underscores, and Unicode characters. They must match the regex `[a-zA-Z_][a-zA-Z0-9_]*`. Label names beginning with `__` are reserved for internal use. [Read more in the Prometheus documentation](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels). +{{% /notice %}} + +{{< tabs name="write_metrics" >}} +{{< tab name="Command 1" >}} + +{{% codeinclude file="quickstart/write-metrics-1.sh" language="shell" %}} + +{{< /tab >}} +{{< tab name="Command 2" >}} + +{{% codeinclude file="quickstart/write-metrics-2.sh" language="shell" %}} + +{{< /tab >}} +{{< tab name="Command 3" >}} + +{{% codeinclude file="quickstart/write-metrics-3.sh" language="shell" %}} + +{{< /tab >}} +{{< /tabs >}} + +### Querying metrics + +M3 supports three query engines: Prometheus (default), Graphite, and the M3 Query Engine. + +This quickstart uses Prometheus as the query engine, and you have access to [all the features of PromQL queries](https://prometheus.io/docs/prometheus/latest/querying/basics/). + +To query metrics, use the _{{% apiendpoint %}}query_range_ endpoint with the following data in the request body, all fields are required: + +- `query`: A PromQL query +- `start`: Timestamp in `RFC3339Nano` of start range for results +- `end`: Timestamp in `RFC3339Nano` of end range for results +- `step`: A duration or float of the query resolution, the interval between results in the timespan between `start` and `end`. + +Below are some examples using the metrics written above. + +#### Return results in past 45 seconds + +{{< tabs name="example_promql_regex" >}} +{{% tab name="Linux" %}} + + + +```shell +curl -X "POST" -G "{{% apiendpoint %}}query_range" \ + -d "query=third_avenue" \ + -d "start=$(date "+%s" -d "45 seconds ago")" \ + -d "end=$( date +%s )" \ + -d "step=5s" | jq . +``` + +{{% /tab %}} +{{% tab name="macOS/BSD" %}} + +```shell +curl -X "POST" -G "{{% apiendpoint %}}query_range" \ + -d "query=third_avenue" \ + -d "start=$( date -v -45S +%s )" \ + -d "end=$( date +%s )" \ + -d "step=5s" | jq . +``` + +{{% /tab %}} +{{% tab name="Output" %}} + +```json +{ + "status": "success", + "data": { + "resultType": "matrix", + "result": [ + { + "metric": { + "__name__": "third_avenue", + "checkout": "1", + "city": "new_york" + }, + "values": [ + [ + {{% now %}}, + "3347.26" + ], + [ + {{% now %}}, + "5347.26" + ], + [ + {{% now %}}, + "7347.26" + ] + ] + } + ] + } +} +``` + +{{% /tab %}} +{{< /tabs >}} + +#### Values above a certain number + +{{< tabs name="example_promql_range" >}} +{{% tab name="Linux" %}} + + + +```shell +curl -X "POST" -G "{{% apiendpoint %}}query_range" \ + -d "query=third_avenue > 6000" \ + -d "start=$(date "+%s" -d "45 seconds ago")" \ + -d "end=$( date +%s )" \ + -d "step=5s" | jq . +``` + +{{% /tab %}} +{{% tab name="macOS/BSD" %}} + +```shell +curl -X "POST" -G "{{% apiendpoint %}}query_range" \ + -d "query=third_avenue > 6000" \ + -d "start=$(date -v -45S "+%s")" \ + -d "end=$( date +%s )" \ + -d "step=5s" | jq . +``` + +{{% /tab %}} +{{% tab name="Output" %}} + +```json +{ + "status": "success", + "data": { + "resultType": "matrix", + "result": [ + { + "metric": { + "__name__": "third_avenue", + "checkout": "1", + "city": "new_york" + }, + "values": [ + [ + {{% now %}}, + "7347.26" + ] + ] + } + ] + } +} +``` + +{{% /tab %}} +{{< /tabs >}} diff --git a/site/content/includes/quickstart/common-steps.md b/site/content/includes/quickstart/common-steps.md new file mode 100644 index 0000000000..d9640fb91a --- /dev/null +++ b/site/content/includes/quickstart/common-steps.md @@ -0,0 +1,432 @@ +## Organizing Data with Placements and Namespaces + +A time series database (TSDBs) typically consist of one node (or instance) to store metrics data. This setup is simple to use but has issues with scalability over time as the quantity of metrics data written and read increases. + +As a distributed TSDB, M3 helps solve this problem by spreading metrics data, and demand for that data, across multiple nodes in a cluster. M3 does this by splitting data into segments that match certain criteria (such as above a certain value) across nodes into shards. + + + +If you've worked with a distributed database before, then these concepts are probably familiar to you, but M3 uses different terminology to represent some concepts. + +- Every cluster has **one** placement that maps shards to nodes in the cluster. +- A cluster can have **0 or more** namespaces that are similar conceptually to tables in other databases, and each node serves every namespace for the shards it owns. + + + +For example, if the cluster placement states that node A owns shards 1, 2, and 3, then node A owns shards 1, 2, 3 for all configured namespaces in the cluster. Each namespace has its own configuration options, including a name and retention time for the data. + +## Create a Placement and Namespace + +This quickstart uses the _{{% apiendpoint %}}database/create_ endpoint that creates a namespace, and the placement if it doesn't already exist based on the `type` argument. + +You can create [placements](/docs/operational_guide/placement_configuration/) and [namespaces](/docs/operational_guide/namespace_configuration/#advanced-hard-way) separately if you need more control over their settings. + +The `namespaceName` argument must match the namespace in the `local` section of the `M3Coordinator` YAML configuration. If you [add any namespaces](/docs/operational_guide/namespace_configuration) you also need to add them to the `local` section of `M3Coordinator`'s YAML configuration. + +In another terminal, use the following command. + +{{< tabs name="create_placement_namespace" >}} +{{% tab name="Command" %}} + +{{% codeinclude file="quickstart/create-database.sh" language="shell" %}} + +{{% /tab %}} +{{% tab name="Output" %}} + +```json +{ + "namespace": { + "registry": { + "namespaces": { + "default": { + "bootstrapEnabled": true, + "flushEnabled": true, + "writesToCommitLog": true, + "cleanupEnabled": true, + "repairEnabled": false, + "retentionOptions": { + "retentionPeriodNanos": "43200000000000", + "blockSizeNanos": "1800000000000", + "bufferFutureNanos": "120000000000", + "bufferPastNanos": "600000000000", + "blockDataExpiry": true, + "blockDataExpiryAfterNotAccessPeriodNanos": "300000000000", + "futureRetentionPeriodNanos": "0" + }, + "snapshotEnabled": true, + "indexOptions": { + "enabled": true, + "blockSizeNanos": "1800000000000" + }, + "schemaOptions": null, + "coldWritesEnabled": false, + "runtimeOptions": null + } + } + } + }, + "placement": { + "placement": { + "instances": { + "m3db_local": { + "id": "m3db_local", + "isolationGroup": "local", + "zone": "embedded", + "weight": 1, + "endpoint": "127.0.0.1:9000", + "shards": [ + { + "id": 0, + "state": "INITIALIZING", + "sourceId": "", + "cutoverNanos": "0", + "cutoffNanos": "0" + }, + … + { + "id": 63, + "state": "INITIALIZING", + "sourceId": "", + "cutoverNanos": "0", + "cutoffNanos": "0" + } + ], + "shardSetId": 0, + "hostname": "localhost", + "port": 9000, + "metadata": { + "debugPort": 0 + } + } + }, + "replicaFactor": 1, + "numShards": 64, + "isSharded": true, + "cutoverTime": "0", + "isMirrored": false, + "maxShardSetId": 0 + }, + "version": 0 + } +} +``` + +{{< /tab >}} +{{< /tabs >}} + +Placement initialization can take a minute or two. Once all the shards have the `AVAILABLE` state, the node has finished bootstrapping, and you should see the following messages in the node console output. + + + +```shell +{"level":"info","ts":1598367624.0117292,"msg":"bootstrap marking all shards as bootstrapped","namespace":"default","namespace":"default","numShards":64} +{"level":"info","ts":1598367624.0301404,"msg":"bootstrap index with bootstrapped index segments","namespace":"default","numIndexBlocks":0} +{"level":"info","ts":1598367624.0301914,"msg":"bootstrap success","numShards":64,"bootstrapDuration":0.049208827} +{"level":"info","ts":1598367624.03023,"msg":"bootstrapped"} +``` + +You can check on the status by calling the _{{% apiendpoint %}}placement_ endpoint: + +{{< tabs name="check_placement" >}} +{{% tab name="Command" %}} + +```shell +curl {{% apiendpoint %}}placement | jq . +``` + +{{% /tab %}} +{{% tab name="Output" %}} + +```json +{ + "placement": { + "instances": { + "m3db_local": { + "id": "m3db_local", + "isolationGroup": "local", + "zone": "embedded", + "weight": 1, + "endpoint": "127.0.0.1:9000", + "shards": [ + { + "id": 0, + "state": "AVAILABLE", + "sourceId": "", + "cutoverNanos": "0", + "cutoffNanos": "0" + }, + … + { + "id": 63, + "state": "AVAILABLE", + "sourceId": "", + "cutoverNanos": "0", + "cutoffNanos": "0" + } + ], + "shardSetId": 0, + "hostname": "localhost", + "port": 9000, + "metadata": { + "debugPort": 0 + } + } + }, + "replicaFactor": 1, + "numShards": 64, + "isSharded": true, + "cutoverTime": "0", + "isMirrored": false, + "maxShardSetId": 0 + }, + "version": 2 +} +``` + +{{% /tab %}} +{{< /tabs >}} + +{{% notice tip %}} +[Read more about the bootstrapping process](/docs/operational_guide/bootstrapping_crash_recovery/). +{{% /notice %}} + +### View Details of a Namespace + +You can also view the attributes of all namespaces by calling the _{{% apiendpoint %}}namespace_ endpoint + +{{< tabs name="check_namespaces" >}} +{{% tab name="Command" %}} + +```shell +curl {{% apiendpoint %}}namespace | jq . +``` + +{{% notice tip %}} +Add `?debug=1` to the request to convert nano units in the output into standard units. +{{% /notice %}} + +{{% /tab %}} +{{% tab name="Output" %}} + +```json +{ + "registry": { + "namespaces": { + "default": { + "bootstrapEnabled": true, + "flushEnabled": true, + "writesToCommitLog": true, + "cleanupEnabled": true, + "repairEnabled": false, + "retentionOptions": { + "retentionPeriodNanos": "43200000000000", + "blockSizeNanos": "1800000000000", + "bufferFutureNanos": "120000000000", + "bufferPastNanos": "600000000000", + "blockDataExpiry": true, + "blockDataExpiryAfterNotAccessPeriodNanos": "300000000000", + "futureRetentionPeriodNanos": "0" + }, + "snapshotEnabled": true, + "indexOptions": { + "enabled": true, + "blockSizeNanos": "1800000000000" + }, + "schemaOptions": null, + "coldWritesEnabled": false, + "runtimeOptions": null + } + } + } +} +``` + +{{% /tab %}} +{{< /tabs >}} + +## Writing and Querying Metrics + +### Writing Metrics + +M3 supports ingesting [statsd](https://github.com/statsd/statsd#usage) and [Prometheus](https://prometheus.io/docs/concepts/data_model/) formatted metrics. + +This quickstart focuses on Prometheus metrics which consist of a value, a timestamp, and tags to bring context and meaning to the metric. + +You can write metrics using one of two endpoints: + +- _[{{% apiendpoint %}}prom/remote/write](/docs/m3coordinator/api/remote/)_ - Write a Prometheus remote write query to M3DB with a binary snappy compressed Prometheus WriteRequest protobuf message. +- _{{% apiendpoint %}}json/write_ - Write a JSON payload of metrics data. This endpoint is quick for testing purposes but is not as performant for production usage. + +For this quickstart, use the _{{% apiendpoint %}}json/write_ endpoint to write a tagged metric to M3 with the following data in the request body, all fields are required: + +- `tags`: An object of at least one `name`/`value` pairs +- `timestamp`: The UNIX timestamp for the data +- `value`: The value for the data, can be of any type + +{{% notice tip %}} +The examples below use `__name__` as the name for one of the tags, which is a Prometheus reserved tag that allows you to query metrics using the value of the tag to filter results. +{{% /notice %}} + +{{% notice tip %}} +Label names may contain ASCII letters, numbers, underscores, and Unicode characters. They must match the regex `[a-zA-Z_][a-zA-Z0-9_]*`. Label names beginning with `__` are reserved for internal use. [Read more in the Prometheus documentation](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels). +{{% /notice %}} + +{{< tabs name="write_metrics" >}} +{{< tab name="Command 1" >}} + +{{% codeinclude file="quickstart/write-metrics-1.sh" language="shell" %}} + +{{< /tab >}} +{{< tab name="Command 2" >}} + +{{% codeinclude file="quickstart/write-metrics-2.sh" language="shell" %}} + +{{< /tab >}} +{{< tab name="Command 3" >}} + +{{% codeinclude file="quickstart/write-metrics-3.sh" language="shell" %}} + +{{< /tab >}} +{{< /tabs >}} + +### Querying metrics + +M3 supports three query engines: Prometheus (default), Graphite, and the M3 Query Engine. + +This quickstart uses Prometheus as the query engine, and you have access to [all the features of PromQL queries](https://prometheus.io/docs/prometheus/latest/querying/basics/). + +To query metrics, use the _{{% apiendpoint %}}query_range_ endpoint with the following data in the request body, all fields are required: + +- `query`: A PromQL query +- `start`: Timestamp in `RFC3339Nano` of start range for results +- `end`: Timestamp in `RFC3339Nano` of end range for results +- `step`: A duration or float of the query resolution, the interval between results in the timespan between `start` and `end`. + +Below are some examples using the metrics written above. + +#### Return results in past 45 seconds + +{{< tabs name="example_promql_regex" >}} +{{% tab name="Linux" %}} + + + +```shell +curl -X "POST" -G "{{% apiendpoint %}}query_range" \ + -d "query=third_avenue" \ + -d "start=$(date "+%s" -d "45 seconds ago")" \ + -d "end=$( date +%s )" \ + -d "step=5s" | jq . +``` + +{{% /tab %}} +{{% tab name="macOS/BSD" %}} + +```shell +curl -X "POST" -G "{{% apiendpoint %}}query_range" \ + -d "query=third_avenue" \ + -d "start=$( date -v -45S +%s )" \ + -d "end=$( date +%s )" \ + -d "step=5s" | jq . +``` + +{{% /tab %}} +{{% tab name="Output" %}} + +```json +{ + "status": "success", + "data": { + "resultType": "matrix", + "result": [ + { + "metric": { + "__name__": "third_avenue", + "checkout": "1", + "city": "new_york" + }, + "values": [ + [ + {{% now %}}, + "3347.26" + ], + [ + {{% now %}}, + "5347.26" + ], + [ + {{% now %}}, + "7347.26" + ] + ] + } + ] + } +} +``` + +{{% /tab %}} +{{< /tabs >}} + +#### Values above a certain number + +{{< tabs name="example_promql_range" >}} +{{% tab name="Linux" %}} + + + +```shell +curl -X "POST" -G "{{% apiendpoint %}}query_range" \ + -d "query=third_avenue > 6000" \ + -d "start=$(date "+%s" -d "45 seconds ago")" \ + -d "end=$( date +%s )" \ + -d "step=5s" | jq . +``` + +{{% /tab %}} +{{% tab name="macOS/BSD" %}} + +```shell +curl -X "POST" -G "{{% apiendpoint %}}query_range" \ + -d "query=third_avenue > 6000" \ + -d "start=$(date -v -45S "+%s")" \ + -d "end=$( date +%s )" \ + -d "step=5s" | jq . +``` + +{{% /tab %}} +{{% tab name="Output" %}} + +```json +{ + "status": "success", + "data": { + "resultType": "matrix", + "result": [ + { + "metric": { + "__name__": "third_avenue", + "checkout": "1", + "city": "new_york" + }, + "values": [ + [ + {{% now %}}, + "7347.26" + ] + ] + } + ] + } +} +``` + +{{% /tab %}} +{{< /tabs >}} + + diff --git a/site/content/quickstart/binaries.md b/site/content/quickstart/binaries.md new file mode 100644 index 0000000000..8e3ff41278 --- /dev/null +++ b/site/content/quickstart/binaries.md @@ -0,0 +1,97 @@ +--- +linktitle: "Binaries" +weight: 3 +--- + + + +# Creating a Single Node M3 Cluster with Binaries + +This guide shows how to install and configure M3, create a single-node cluster, and read and write metrics to it. + +{{% notice warning %}} +Deploying a single-node M3 cluster is a great way to experiment with M3 and get an idea of what it has to offer, but is not designed for production use. To run M3 in clustered mode, with a separate M3Coordinator [read the clustered mode guide](/docs/cluster). +{{% /notice %}} + +## Prebuilt Binaries + +M3 has pre-built binaries available for Linux and macOS. [Download the latest release from GitHub](https://github.com/m3db/m3/releases/latest). + +## Build From Source + +### Prerequisites + +- [Go 1.10 or higher](https://golang.org/dl/) +- [Make](https://www.gnu.org/software/make/) + +### Build Source + +```shell +make m3dbnode +``` + +## Start Binary + +By default the binary configures a single M3 instance containing: + +- An M3DB storage instance for time series storage. It includes an embedded tag-based metrics index and an etcd server for storing the cluster topology and runtime configuration. +- An M3Coordinator instance for writing and querying tagged metrics, as well as managing cluster topology and runtime configuration. + +It exposes three ports: + +- `7201` to manage the cluster topology, you make most API calls to this endpoint +- `7203` for Prometheus to scrape the metrics produced by M3DB and M3Coordinator + +The command below starts the node using the specified configuration file. + +{{< tabs name="start_container" >}} +{{% tab name="Pre-built binary" %}} + +[Download the example configuration file](https://github.com/m3db/m3/raw/master/src/dbnode/config/m3dbnode-local-etcd.yml). + +```shell +./m3dbnode -f /{FILE_LOCATION}/m3dbnode-local-etcd.yml +``` + +{{% notice info %}} +Depending on your operating system setup, you might need to prefix the command with `sudo`. +{{% /notice %}} + +{{% /tab %}} +{{% tab name="Self-built binary" %}} + +```shell +./bin/m3dbnode -f ./src/dbnode/config/m3dbnode-local-etcd.yml +``` + +{{% notice info %}} +Depending on your operating system setup, you might need to prefix the command with `sudo`. +{{% /notice %}} + +{{% /tab %}} +{{% tab name="Output" %}} + + + + + +![Docker pull and run](/docker-install.gif) + +{{% /tab %}} +{{< /tabs >}} + +{{% notice info %}} +When running the command above on macOS you may see errors about "too many open files." To fix this in your current terminal, use `ulimit` to increase the upper limit, for example `ulimit -n 10240`. +{{% /notice %}} + +## Configuration + +This example uses this [sample configuration file](https://github.com/m3db/m3/raw/master/src/dbnode/config/m3dbnode-local-etcd.yml) by default. + +The file groups configuration into `coordinator` or `db` sections that represent the `M3Coordinator` and `M3DB` instances of single-node cluster. + +{{% notice tip %}} +You can find more information on configuring M3DB in the [operational guides section](/docs/operational_guide). +{{% /notice %}} + +{{% fileinclude file="quickstart/common-steps.md" %}} \ No newline at end of file diff --git a/site/content/quickstart/docker.md b/site/content/quickstart/docker.md index 029cb733f5..00306901db 100644 --- a/site/content/quickstart/docker.md +++ b/site/content/quickstart/docker.md @@ -7,9 +7,9 @@ weight: 1 This guide shows how to install and configure M3DB, create a single-node cluster, and read and write metrics to it. - + {{% notice warning %}} -Deploying a single-node M3DB cluster is a great way to experiment with M3DB and get an idea of what it has to offer, but is not designed for production use. To run M3DB in clustered mode with a separate M3Coordinator, [read the clustered mode guide](/docs/how_to/cluster_hard_way). +Deploying a single-node M3DB cluster is a great way to experiment with M3DB and get an idea of what it has to offer, but is not designed for production use. To run M3DB in clustered mode with a separate M3Coordinator, [read the clustered mode guide](/docs/cluster/docker_cluster). {{% /notice %}} ## Prerequisites @@ -70,458 +70,4 @@ The file groups configuration into `coordinator` or `db` sections that represent You can find more information on configuring M3DB in the [operational guides section](/docs/operational_guide/). {{% /notice %}} -## Organizing Data with Placements and Namespaces - -A time series database (TSDBs) typically consist of one node (or instance) to store metrics data. This setup is simple to use but has issues with scalability over time as the quantity of metrics data written and read increases. - -As a distributed TSDB, M3DB helps solve this problem by spreading metrics data, and demand for that data, across multiple nodes in a cluster. M3DB does this by splitting data into segments that match certain criteria (such as above a certain value) across nodes into shards. - - - -If you've worked with a distributed database before, then these concepts are probably familiar to you, but M3DB uses different terminology to represent some concepts. - -- Every cluster has **one** placement that maps shards to nodes in the cluster. -- A cluster can have **0 or more** namespaces that are similar conceptually to tables in other databases, and each node serves every namespace for the shards it owns. - - - -For example, if the cluster placement states that node A owns shards 1, 2, and 3, then node A owns shards 1, 2, 3 for all configured namespaces in the cluster. Each namespace has its own configuration options, including a name and retention time for the data. - -## Create a Placement and Namespace - -This quickstart uses the _{{% apiendpoint %}}database/create_ endpoint that creates a namespace, and the placement if it doesn't already exist based on the `type` argument. - -You can create [placements](/docs/operational_guide/placement_configuration/) and [namespaces](/docs/operational_guide/namespace_configuration/#advanced-hard-way) separately if you need more control over their settings. - -In another terminal, use the following command. - -{{< tabs name="create_placement_namespace" >}} -{{% tab name="Command" %}} - -{{% codeinclude file="quickstart/create-database.sh" language="shell" %}} - -{{% notice tip %}} -The Docker command used above creates a Docker [persistent volume](https://docs.docker.com/storage/volumes/) to keep the data M3 creates on your host file system between container restarts. If you have already followed this tutorial, the namespace already exists. You can clear the data by deleting the contents of the _m3db_data_ folder, or deleting the namespace with [the DELETE endpoint](/docs/operational_guide/namespace_configuration/#deleting-a-namespace). -{{% /notice %}} - -{{% /tab %}} -{{% tab name="Output" %}} - -```json -{ - "namespace": { - "registry": { - "namespaces": { - "default": { - "bootstrapEnabled": true, - "flushEnabled": true, - "writesToCommitLog": true, - "cleanupEnabled": true, - "repairEnabled": false, - "retentionOptions": { - "retentionPeriodNanos": "43200000000000", - "blockSizeNanos": "1800000000000", - "bufferFutureNanos": "120000000000", - "bufferPastNanos": "600000000000", - "blockDataExpiry": true, - "blockDataExpiryAfterNotAccessPeriodNanos": "300000000000", - "futureRetentionPeriodNanos": "0" - }, - "snapshotEnabled": true, - "indexOptions": { - "enabled": true, - "blockSizeNanos": "1800000000000" - }, - "schemaOptions": null, - "coldWritesEnabled": false, - "runtimeOptions": null - } - } - } - }, - "placement": { - "placement": { - "instances": { - "m3db_local": { - "id": "m3db_local", - "isolationGroup": "local", - "zone": "embedded", - "weight": 1, - "endpoint": "127.0.0.1:9000", - "shards": [ - { - "id": 0, - "state": "INITIALIZING", - "sourceId": "", - "cutoverNanos": "0", - "cutoffNanos": "0" - }, - … - { - "id": 63, - "state": "INITIALIZING", - "sourceId": "", - "cutoverNanos": "0", - "cutoffNanos": "0" - } - ], - "shardSetId": 0, - "hostname": "localhost", - "port": 9000, - "metadata": { - "debugPort": 0 - } - } - }, - "replicaFactor": 1, - "numShards": 64, - "isSharded": true, - "cutoverTime": "0", - "isMirrored": false, - "maxShardSetId": 0 - }, - "version": 0 - } -} -``` - -{{< /tab >}} -{{< /tabs >}} - -Placement initialization can take a minute or two. Once all the shards have the `AVAILABLE` state, the node has finished bootstrapping, and you should see the following messages in the node console output. - - - -```shell -{"level":"info","ts":1598367624.0117292,"msg":"bootstrap marking all shards as bootstrapped","namespace":"default","namespace":"default","numShards":64} -{"level":"info","ts":1598367624.0301404,"msg":"bootstrap index with bootstrapped index segments","namespace":"default","numIndexBlocks":0} -{"level":"info","ts":1598367624.0301914,"msg":"bootstrap success","numShards":64,"bootstrapDuration":0.049208827} -{"level":"info","ts":1598367624.03023,"msg":"bootstrapped"} -``` - -You can check on the status by calling the _{{% apiendpoint %}}placement_ endpoint: - -{{< tabs name="check_placement" >}} -{{% tab name="Command" %}} - -```shell -curl {{% apiendpoint %}}placement | jq . -``` - -{{% /tab %}} -{{% tab name="Output" %}} - -```json -{ - "placement": { - "instances": { - "m3db_local": { - "id": "m3db_local", - "isolationGroup": "local", - "zone": "embedded", - "weight": 1, - "endpoint": "127.0.0.1:9000", - "shards": [ - { - "id": 0, - "state": "AVAILABLE", - "sourceId": "", - "cutoverNanos": "0", - "cutoffNanos": "0" - }, - … - { - "id": 63, - "state": "AVAILABLE", - "sourceId": "", - "cutoverNanos": "0", - "cutoffNanos": "0" - } - ], - "shardSetId": 0, - "hostname": "localhost", - "port": 9000, - "metadata": { - "debugPort": 0 - } - } - }, - "replicaFactor": 1, - "numShards": 64, - "isSharded": true, - "cutoverTime": "0", - "isMirrored": false, - "maxShardSetId": 0 - }, - "version": 2 -} -``` - -{{% /tab %}} -{{< /tabs >}} - -{{% notice tip %}} -[Read more about the bootstrapping process](/docs/operational_guide/bootstrapping_crash_recovery/). -{{% /notice %}} - -### Ready a Namespace - -Once a namespace has finished bootstrapping, you must mark it as ready before receiving traffic by using the _{{% apiendpoint %}}namespace/ready_. - -{{< tabs name="ready_namespaces" >}} -{{% tab name="Command" %}} - -{{% codeinclude file="quickstart/ready-namespace.sh" language="shell" %}} - -{{% /tab %}} -{{% tab name="Output" %}} - -```json -{ - "ready": true -} -``` - -{{% /tab %}} -{{< /tabs >}} - -### View Details of a Namespace - -You can also view the attributes of all namespaces by calling the _{{% apiendpoint %}}namespace_ endpoint - -{{< tabs name="check_namespaces" >}} -{{% tab name="Command" %}} - -```shell -curl {{% apiendpoint %}}namespace | jq . -``` - -{{% notice tip %}} -Add `?debug=1` to the request to convert nano units in the output into standard units. -{{% /notice %}} - -{{% /tab %}} -{{% tab name="Output" %}} - -```json -{ - "registry": { - "namespaces": { - "default": { - "bootstrapEnabled": true, - "flushEnabled": true, - "writesToCommitLog": true, - "cleanupEnabled": true, - "repairEnabled": false, - "retentionOptions": { - "retentionPeriodNanos": "43200000000000", - "blockSizeNanos": "1800000000000", - "bufferFutureNanos": "120000000000", - "bufferPastNanos": "600000000000", - "blockDataExpiry": true, - "blockDataExpiryAfterNotAccessPeriodNanos": "300000000000", - "futureRetentionPeriodNanos": "0" - }, - "snapshotEnabled": true, - "indexOptions": { - "enabled": true, - "blockSizeNanos": "1800000000000" - }, - "schemaOptions": null, - "coldWritesEnabled": false, - "runtimeOptions": null - } - } - } -} -``` - -{{% /tab %}} -{{< /tabs >}} - -## Writing and Querying Metrics - -### Writing Metrics - -M3 supports ingesting [statsd](https://github.com/statsd/statsd#usage) and [Prometheus](https://prometheus.io/docs/concepts/data_model/) formatted metrics. - -This quickstart focuses on Prometheus metrics which consist of a value, a timestamp, and tags to bring context and meaning to the metric. - -You can write metrics using one of two endpoints: - -- _[{{% apiendpoint %}}prom/remote/write](/docs/m3coordinator/api/remote/)_ - Write a Prometheus remote write query to M3DB with a binary snappy compressed Prometheus WriteRequest protobuf message. -- _{{% apiendpoint %}}json/write_ - Write a JSON payload of metrics data. This endpoint is quick for testing purposes but is not as performant for production usage. - -For this quickstart, use the _{{% apiendpoint %}}json/write_ endpoint to write a tagged metric to M3DB with the following data in the request body, all fields are required: - -- `tags`: An object of at least one `name`/`value` pairs -- `timestamp`: The UNIX timestamp for the data -- `value`: The value for the data, can be of any type - -{{% notice tip %}} -The examples below use `__name__` as the name for one of the tags, which is a Prometheus reserved tag that allows you to query metrics using the value of the tag to filter results. -{{% /notice %}} - -{{% notice tip %}} -Label names may contain ASCII letters, numbers, underscores, and Unicode characters. They must match the regex `[a-zA-Z_][a-zA-Z0-9_]*`. Label names beginning with `__` are reserved for internal use. [Read more in the Prometheus documentation](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels). -{{% /notice %}} - -{{< tabs name="write_metrics" >}} -{{< tab name="Command 1" >}} - -{{% codeinclude file="quickstart/write-metrics-1.sh" language="shell" %}} - -{{< /tab >}} -{{< tab name="Command 2" >}} - -{{% codeinclude file="quickstart/write-metrics-2.sh" language="shell" %}} - -{{< /tab >}} -{{< tab name="Command 3" >}} - -{{% codeinclude file="quickstart/write-metrics-3.sh" language="shell" %}} - -{{< /tab >}} -{{< /tabs >}} - -### Querying metrics - -M3DB supports three query engines: Prometheus (default), Graphite, and the M3 Query Engine. - -This quickstart uses Prometheus as the query engine, and you have access to [all the features of PromQL queries](https://prometheus.io/docs/prometheus/latest/querying/basics/). - -To query metrics, use the _{{% apiendpoint %}}query_range_ endpoint with the following data in the request body, all fields are required: - -- `query`: A PromQL query -- `start`: Timestamp in `RFC3339Nano` of start range for results -- `end`: Timestamp in `RFC3339Nano` of end range for results -- `step`: A duration or float of the query resolution, the interval between results in the timespan between `start` and `end`. - -Below are some examples using the metrics written above. - -#### Return results in past 45 seconds - -{{< tabs name="example_promql_regex" >}} -{{% tab name="Linux" %}} - - - -```shell -curl -X "POST" -G "{{% apiendpoint %}}query_range" \ - -d "query=third_avenue" \ - -d "start=$(date "+%s" -d "45 seconds ago")" \ - -d "end=$( date +%s )" \ - -d "step=5s" | jq . -``` - -{{% /tab %}} -{{% tab name="macOS/BSD" %}} - -```shell -curl -X "POST" -G "{{% apiendpoint %}}query_range" \ - -d "query=third_avenue" \ - -d "start=$( date -v -45S +%s )" \ - -d "end=$( date +%s )" \ - -d "step=5s" | jq . -``` - -{{% /tab %}} -{{% tab name="Output" %}} - -```json -{ - "status": "success", - "data": { - "resultType": "matrix", - "result": [ - { - "metric": { - "__name__": "third_avenue", - "checkout": "1", - "city": "new_york" - }, - "values": [ - [ - {{% now %}}, - "3347.26" - ], - [ - {{% now %}}, - "5347.26" - ], - [ - {{% now %}}, - "7347.26" - ] - ] - } - ] - } -} -``` - -{{% /tab %}} -{{< /tabs >}} - -#### Values above a certain number - -{{< tabs name="example_promql_range" >}} -{{% tab name="Linux" %}} - - - -```shell -curl -X "POST" -G "{{% apiendpoint %}}query_range" \ - -d "query=third_avenue > 6000" \ - -d "start=$(date "+%s" -d "45 seconds ago")" \ - -d "end=$( date +%s )" \ - -d "step=5s" | jq . -``` - -{{% /tab %}} -{{% tab name="macOS/BSD" %}} - -```shell -curl -X "POST" -G "{{% apiendpoint %}}query_range" \ - -d "query=third_avenue > 6000" \ - -d "start=$(date -v -45S "+%s")" \ - -d "end=$( date +%s )" \ - -d "step=5s" | jq . -``` - -{{% /tab %}} -{{% tab name="Output" %}} - -```json -{ - "status": "success", - "data": { - "resultType": "matrix", - "result": [ - { - "metric": { - "__name__": "third_avenue", - "checkout": "1", - "city": "new_york" - }, - "values": [ - [ - {{% now %}}, - "7347.26" - ] - ] - } - ] - } -} -``` - -{{% /tab %}} -{{< /tabs >}} - - +{{% fileinclude file="quickstart/common-steps.md" %}} diff --git a/site/content/troubleshooting/_index.md b/site/content/troubleshooting/_index.md index 6de538ee64..60f378d6ab 100644 --- a/site/content/troubleshooting/_index.md +++ b/site/content/troubleshooting/_index.md @@ -20,7 +20,7 @@ If an m3db node hasn't been able to snapshot for awhile, or is stuck in the comm ## Nodes a crashing with memory allocation errors, but there's plenty of available memory -Ensure you've set `vm.max_map_count` to something like 262,144 using sysctl. Find out more in the [Clustering the Hard Way](/docs/how_to/cluster_hard_way#kernel) document. +Ensure you've set `vm.max_map_count` to something like 262,144 using sysctl. Find out more in the [Clustering the Hard Way](/docs/operational_guide/kernel_configuration) document. ## What to do if my M3DB node is OOM’ing? From 48a6508f42313fb19168b6e494916699c03e5f92 Mon Sep 17 00:00:00 2001 From: ChrisChinchilla Date: Thu, 3 Dec 2020 18:14:21 +0100 Subject: [PATCH 02/12] Fix rendering issues Signed-off-by: ChrisChinchilla --- site/config/_default/config.toml | 12 +- site/config/development/config.toml | 160 +----------------- site/content/cluster/binaries_cluster.md | 2 +- .../quickstart => cluster}/create-database.sh | 0 site/content/cluster/kubernetes_cluster.md | 2 +- .../quickstart => cluster}/ready-namespace.sh | 0 .../quickstart => cluster}/write-metrics-1.sh | 0 .../quickstart => cluster}/write-metrics-2.sh | 0 .../quickstart => cluster}/write-metrics-3.sh | 0 ...ommon-steps.md => cluster-common-steps.md} | 6 +- site/content/includes/create-database.sh | 6 + site/content/includes/podtemplate.json | 22 --- ...on-steps.md => quickstart-common-steps.md} | 14 +- site/content/includes/write-metrics-1.sh | 11 ++ site/content/includes/write-metrics-2.sh | 11 ++ site/content/includes/write-metrics-3.sh | 11 ++ site/content/quickstart/binaries.md | 2 +- site/content/quickstart/create-database.sh | 6 + site/content/quickstart/write-metrics-1.sh | 11 ++ site/content/quickstart/write-metrics-2.sh | 11 ++ site/content/quickstart/write-metrics-3.sh | 11 ++ 21 files changed, 103 insertions(+), 195 deletions(-) rename site/content/{includes/quickstart => cluster}/create-database.sh (100%) rename site/content/{includes/quickstart => cluster}/ready-namespace.sh (100%) rename site/content/{includes/quickstart => cluster}/write-metrics-1.sh (100%) rename site/content/{includes/quickstart => cluster}/write-metrics-2.sh (100%) rename site/content/{includes/quickstart => cluster}/write-metrics-3.sh (100%) rename site/content/includes/{getting-started/common-steps.md => cluster-common-steps.md} (95%) create mode 100644 site/content/includes/create-database.sh delete mode 100644 site/content/includes/podtemplate.json rename site/content/includes/{quickstart/common-steps.md => quickstart-common-steps.md} (97%) create mode 100755 site/content/includes/write-metrics-1.sh create mode 100755 site/content/includes/write-metrics-2.sh create mode 100755 site/content/includes/write-metrics-3.sh create mode 100644 site/content/quickstart/create-database.sh create mode 100755 site/content/quickstart/write-metrics-1.sh create mode 100755 site/content/quickstart/write-metrics-2.sh create mode 100755 site/content/quickstart/write-metrics-3.sh diff --git a/site/config/_default/config.toml b/site/config/_default/config.toml index 4ebb6db2e3..3ebf7f99fe 100644 --- a/site/config/_default/config.toml +++ b/site/config/_default/config.toml @@ -38,8 +38,18 @@ metaDataFormat = "yaml" # baseURL = "/" languageCode = "en-US" defaultContentLanguage = "en" +defaultContentLanguageInSubdir = true # staticDir = ["static"] -defaultContentLanguageInSubdir= true +# defaultContentLanguageInSubdir= true + +[languages] +[languages.en] +title = "Kubernetes" +description = "Production-Grade Container Orchestration" +languageName ="English" +# Weight used for sorting. +weight = 1 +languagedirection = "ltr" # Highlighting config. pygmentsCodeFences = true diff --git a/site/config/development/config.toml b/site/config/development/config.toml index 5f22fa6660..95d51cbfcc 100644 --- a/site/config/development/config.toml +++ b/site/config/development/config.toml @@ -29,162 +29,4 @@ [[module.mounts]] source = "archetypes" - target = "archetypes" - -ignoreFiles = [ "\\.ttf$", "\\.woff$", "\\.woff2$", "\\.eot$" ] - -[permalinks] - "/" = "/docs/:section/:title/" - "faqs" = "/docs/:section/:title/" - "glossaries" = "/docs/:section/:title/" - "how_tos" = "/docs/:section/:title/" - "integrations" = "/docs/:section/:title/" - "m3coordinators" = "/docs/:section/:title/" - "m3dbs" = "/docs/:section/:title/" - "m3querys" = "/docs/:section/:title/" - "operational_guides" = "/docs/:section/:title/" - "overviews" = "/docs/:section/:title/" - "quickstarts" = "/docs/:section/:title/" - "troubleshootings" = "/docs/:section/:title/" - -# theme = "docs-theme" -# baseURL = "/" -languageCode = "en-US" -defaultContentLanguage = "en" -# staticDir = ["static"] - -metaDataFormat = "yaml" -defaultContentLanguageInSubdir= true - -# Highlighting config. -pygmentsCodeFences = true -pygmentsUseClasses = false -# Use the new Chroma Go highlighter in Hugo. -pygmentsUseClassic = false -#pygmentsOptions = "linenos=table" -# See https://help.farbox.com/pygments.html -# pygmentsStyle = "vs" - -enableGitInfo = true - -[frontmatter] -# date = ["date", ":filename", "publishDate", "lastmod"] - -# Image processing configuration. -[imaging] -resampleFilter = "CatmullRom" -quality = 75 -anchor = "smart" - -[services] -[services.googleAnalytics] -# Comment out the next line to disable GA tracking. Also disables the feature described in [params.ui.feedback]. -# id = "UA-00000000-0" - -#fullversion = "v1.18.0" -#version = "v1.18" -githubbranch = "master" -docsbranch = "master" -deprecated = false -#currentUrl = "https://kubernetes.io/home/" -#nextUrl = "https://kubernetes-io-vnext-staging.netlify.com/" -githubWebsiteRepo = "https://github.com/m3db/m3" -githubWebsiteRaw = "raw.githubusercontent.com/m3db/m3" - -# Enable Algolia DocSearch -# algolia_docsearch = false - -# Enable Lunr.js offline search -offlineSearch = false - -[params] - # Prefix URL to edit current page. Will display an "Edit this page" button on top right hand corner of every page. - # Useful to give opportunity to people to create merge request for your doc. - # See the config.toml file from this documentation site to have an example. - # TODO: pattern to branch? - # TODO: bring back - # editURL = "https://github.com/m3db/m3/tree/master/site/content/" - # Shows a checkmark for visited pages on the menu - showVisitedLinks = false - # Disable search function. It will hide search bar - disableSearch = false - # Javascript and CSS cache are automatically busted when new version of site is generated. - # Set this to true to disable this behavior (some proxies don't handle well this optimization) - disableAssetsBusting = false - # Set this to true to disable copy-to-clipboard button for inline code. - disableInlineCopyToClipBoard = true - # A title for shortcuts in menu is set by default. Set this to true to disable it. - disableShortcutsTitle = false - # When using mulitlingual website, disable the switch language button. - disableLanguageSwitchingButton = false - # Hide breadcrumbs in the header and only show the current page title - disableBreadcrumb = true - # Hide Next and Previous page buttons normally displayed full height beside content - disableNextPrev = true - # Order sections in menu by "weight" or "title". Default to "weight" - ordersectionsby = "weight" - # Change default color scheme with a variant one. Can be "red", "blue", "green". - themeVariant = "blue" - twitter = "m3db_io" - disableHomeIcon = true - - [params.api] - localCordinator = "http://localhost:7201/" - apiEndpoint = "api/v1/" - - # TODO: Might need to refactor some of the K8s shortcodes later -# Add your release versions here -# TODO: Enable when ready -# [[params.versions]] -# version = "1.0" -# url = "https://master.kubeflow.org" -# [[params.versions]] -# version = "0.9" -# url = "https://master.kubeflow.org" - -# version_menu = "Versions" - -# TODO: Do not like doing this really -[markup] - [markup.goldmark] - [markup.goldmark.renderer] - unsafe = true - [markup.goldmark.parser] - attribute = true - autoHeadingID = true - autoHeadingIDType = "github" - [markup.tableOfContents] - endLevel = 3 - ordered = false - startLevel = 2 - [markup.goldmark.extensions] - definitionList = true - footnote = true - linkify = true - strikethrough = true - table = true - taskList = true - typographer = true - -[[menu.shortcuts]] -pre = "

More

" -name = " " -identifier = "ds" -url = "https://github.com/m3db/m3" -weight = 10 - -[[menu.shortcuts]] -name = " " -url = "https://bit.ly/m3slack" -weight = 11 - -[[menu.shortcuts]] -name = " " -url = "https://groups.google.com/forum/#!forum/m3db" -weight = 12 - -[outputs] -home = [ "HTML", "RSS", "JSON"] -page = [ "HTML"] -section = [ "HTML"] -chapter = [ "HTML"] + target = "archetypes" \ No newline at end of file diff --git a/site/content/cluster/binaries_cluster.md b/site/content/cluster/binaries_cluster.md index 9233436dfc..65c0d73f8d 100644 --- a/site/content/cluster/binaries_cluster.md +++ b/site/content/cluster/binaries_cluster.md @@ -250,7 +250,7 @@ We recommend a replication factor of **3**, with each replica spread across fail Read the [placement configuration guide](/docs/operational_guide/placement_configuration) to determine the appropriate number of shards to specify. -{{% fileinclude file="getting-started/common-steps.md" %}} +{{< fileinclude file="cluster-common-steps.md" >}} {{% notice warning %}} -Deploying a single-node M3DB cluster is a great way to experiment with M3DB and get an idea of what it has to offer, but is not designed for production use. To run M3DB in clustered mode with a separate M3Coordinator, [read the clustered mode guide](/docs/cluster/docker_cluster). +Deploying a single-node M3DB cluster is a great way to experiment with M3DB and get an idea of what it has to offer, but is not designed for production use. To run M3DB in clustered mode with a separate M3Coordinator, [read the clustered mode guide](/docs/cluster/). {{% /notice %}} ## Prerequisites From c09a529946ca785e9a9fb62cc12a6a0b5251eafb Mon Sep 17 00:00:00 2001 From: ChrisChinchilla Date: Wed, 9 Dec 2020 12:44:42 +0100 Subject: [PATCH 06/12] Respond to feedback Signed-off-by: ChrisChinchilla --- site/content/cluster/binaries_cluster.md | 52 ++++++++++++------- .../config/m3dbnode-cluster-template.yml | 21 ++++---- 2 files changed, 43 insertions(+), 30 deletions(-) diff --git a/site/content/cluster/binaries_cluster.md b/site/content/cluster/binaries_cluster.md index 0acb5b566e..daf7dd588b 100644 --- a/site/content/cluster/binaries_cluster.md +++ b/site/content/cluster/binaries_cluster.md @@ -24,7 +24,7 @@ An M3 deployment typically has two main node types: - **Coordinator node**: `m3coordinator` nodes coordinate reads and writes across all nodes in the cluster. It's a lightweight process, and does not store any data. This role typically runs alongside a Prometheus instance, or is part of a collector agent such as statsD. - **Storage node**: The `m3dbnode` processes are the workhorses of M3, they store data and serve reads and writes. -And exposes two ports: +A `m3coordinator` node exposes two ports: - `7201` to manage the cluster topology, you make most API calls to this endpoint - `7203` for Prometheus to scrape the metrics produced by M3DB and M3Coordinator @@ -79,8 +79,8 @@ For example, if you used `M3DC_HOST_ID` for the environment variable name, use t ```yaml hostID: - resolver: hostname - - ${M3DC_HOST_ID:""} + resolver: config + value: ${M3DC_HOST_ID:""} ``` Then start the `m3dbnode` process with: @@ -123,7 +123,7 @@ You can find more information on configuring M3DB in the [operational guides sec {{% /notice %}} {{% notice note %}} -The steps in this guide have the following 3 seed nodes, you need to change your configuration to suit the details of yours, including the details of an etcd cluster in the `etcdClusters` section of the M3 configuration file. +The steps in this guide have the following 3 seed nodes, you need to change your configuration to suit the details of yours, including the details of an etcd cluster in the `m3dbCluster` > `endpoints` section of the M3 configuration file. {{% /notice %}} - m3db001 (Region=us-east1, Zone=us-east1-a, Static IP=10.142.0.1) @@ -141,17 +141,14 @@ This example updates the `service` and `seedNodes` sections to match the node de ```yaml config: - service: - env: default_env - zone: embedded - service: m3db - cacheDir: /var/lib/m3kv - etcdClusters: - - zone: embedded - endpoints: - - 10.142.0.1:2379 - - 10.142.0.2:2379 - - 10.142.0.3:2379 + discovery: + type: m3db_cluster + m3dbCluster: + env: default_env + endpoints: + - 10.142.0.1:2379 + - 10.142.0.2:2379 + - 10.142.0.3:2379 ``` ## Start the storage nodes @@ -176,8 +173,6 @@ This guide uses the _{{% apiendpoint %}}database/create_ endpoint that creates a You can create [placements](/docs/operational_guide/placement_configuration/) and [namespaces](/docs/operational_guide/namespace_configuration/#advanced-hard-way) separately if you need more control over their settings. -The `namespaceName` argument must match the namespace in the `local` section of the `M3Coordinator` YAML configuration. If you [add any namespaces](/docs/operational_guide/namespace_configuration) you also need to add them to the `local` section of `M3Coordinator`'s YAML configuration. - In the example below, the configuration for each host matches the details outlined above for the three nodes used. `isolationGroup` specifies how the cluster places shards to avoid more than one replica of a shard appearing in the same replica group. You should use at least as many isolation groups as your replication factor. This example uses the availability zones `us-east1-a`, `us-east1-b`, `us-east1-c` as the isolation groups which matches our replication factor of 3. [Read more details in this guide](/docs/operational_guide/replication_and_deployment_in_zones). {{< tabs name="database_create" >}} @@ -240,7 +235,28 @@ curl -X POST {{% apiendpoint %}}database/create -d '{ {{% /tab %}} {{< /tabs >}} -If you need to setup multiple namespaces, you can run the command above above multiple times with different namespace configurations. +If you need to setup multiple namespaces, you can run the command above multiple times with different namespace configurations. + +### Ready a Namespace + +Once a namespace has finished bootstrapping, you must mark it as ready before receiving traffic by using the _{{% apiendpoint %}}namespace/ready_. + +{{< tabs name="ready_namespaces" >}} +{{% tab name="Command" %}} + +{{% codeinclude file="quickstart/ready-namespace.sh" language="shell" %}} + +{{% /tab %}} +{{% tab name="Output" %}} + +```json +{ + "ready": true +} +``` + +{{% /tab %}} +{{< /tabs >}} ### Replication factor diff --git a/src/dbnode/config/m3dbnode-cluster-template.yml b/src/dbnode/config/m3dbnode-cluster-template.yml index 4d6689a84c..ed3467d497 100644 --- a/src/dbnode/config/m3dbnode-cluster-template.yml +++ b/src/dbnode/config/m3dbnode-cluster-template.yml @@ -10,18 +10,15 @@ db: resolver: hostname # Fill-out the following and un-comment before using. -# config: -# service: -# env: default_env -# zone: embedded -# service: m3db -# cacheDir: /var/lib/m3kv -# etcdClusters: -# - zone: embedded -# endpoints: -# - HOST1_STATIC_IP_ADDRESS:2379 -# - HOST2_STATIC_IP_ADDRESS:2379 -# - HOST3_STATIC_IP_ADDRESS:2379 + # config: + # discovery: + # type: m3db_cluster + # m3dbCluster: + # env: default_env + # endpoints: + # - HOST1_STATIC_IP_ADDRESS:2379 + # - HOST2_STATIC_IP_ADDRESS:2379 + # - HOST3_STATIC_IP_ADDRESS:2379 # seedNodes: # initialCluster: # - hostID: host1 From 6637b123d504026d5e45509c78591072c7f12991 Mon Sep 17 00:00:00 2001 From: ChrisChinchilla Date: Wed, 9 Dec 2020 16:04:41 +0100 Subject: [PATCH 07/12] Respond to feedback and fix rebased files Signed-off-by: ChrisChinchilla --- site/content/cluster/binaries_cluster.md | 2 +- site/content/how_to/use_as_tsdb.md | 2 +- site/content/includes/podtemplate.json | 22 +++++++++++++++++++ .../includes/quickstart/create-database.sh | 6 +++++ .../includes/quickstart/ready-namespace.sh | 4 ++++ .../includes/quickstart/write-metrics-1.sh | 11 ++++++++++ .../includes/quickstart/write-metrics-2.sh | 11 ++++++++++ .../includes/quickstart/write-metrics-3.sh | 11 ++++++++++ .../namespace_configuration.md | 4 ++-- site/content/quickstart/docker.md | 2 +- 10 files changed, 70 insertions(+), 5 deletions(-) create mode 100644 site/content/includes/podtemplate.json create mode 100644 site/content/includes/quickstart/create-database.sh create mode 100644 site/content/includes/quickstart/ready-namespace.sh create mode 100755 site/content/includes/quickstart/write-metrics-1.sh create mode 100755 site/content/includes/quickstart/write-metrics-2.sh create mode 100755 site/content/includes/quickstart/write-metrics-3.sh diff --git a/site/content/cluster/binaries_cluster.md b/site/content/cluster/binaries_cluster.md index daf7dd588b..474634f473 100644 --- a/site/content/cluster/binaries_cluster.md +++ b/site/content/cluster/binaries_cluster.md @@ -244,7 +244,7 @@ Once a namespace has finished bootstrapping, you must mark it as ready before re {{< tabs name="ready_namespaces" >}} {{% tab name="Command" %}} -{{% codeinclude file="quickstart/ready-namespace.sh" language="shell" %}} +{{< codeinclude file="docs/includes/quickstart/ready-namespace.sh" language="shell" >}} {{% /tab %}} {{% tab name="Output" %}} diff --git a/site/content/how_to/use_as_tsdb.md b/site/content/how_to/use_as_tsdb.md index a0ae2399b7..c8e32579b3 100644 --- a/site/content/how_to/use_as_tsdb.md +++ b/site/content/how_to/use_as_tsdb.md @@ -148,7 +148,7 @@ Once a namespace has finished bootstrapping, you must mark it as ready before re {{< tabs name="ready_namespaces" >}} {{% tab name="Command" %}} -{{% codeinclude file="quickstart/ready-namespace.sh" language="shell" %}} +{{< codeinclude file="docs/includes/quickstart/ready-namespace.sh" language="shell" >}} {{% /tab %}} {{% tab name="Output" %}} diff --git a/site/content/includes/podtemplate.json b/site/content/includes/podtemplate.json new file mode 100644 index 0000000000..4906077adc --- /dev/null +++ b/site/content/includes/podtemplate.json @@ -0,0 +1,22 @@ +{ + "apiVersion": "v1", + "kind": "PodTemplate", + "metadata": { + "name": "nginx" + }, + "template": { + "metadata": { + "labels": { + "name": "nginx" + }, + "generateName": "nginx-" + }, + "spec": { + "containers": [{ + "name": "nginx", + "image": "dockerfile/nginx", + "ports": [{"containerPort": 80}] + }] + } + } + } \ No newline at end of file diff --git a/site/content/includes/quickstart/create-database.sh b/site/content/includes/quickstart/create-database.sh new file mode 100644 index 0000000000..104dce0586 --- /dev/null +++ b/site/content/includes/quickstart/create-database.sh @@ -0,0 +1,6 @@ +#!/bin/bash +curl -X POST http://localhost:7201/api/v1/database/create -d '{ + "type": "local", + "namespaceName": "default", + "retentionTime": "12h" +}' | jq . diff --git a/site/content/includes/quickstart/ready-namespace.sh b/site/content/includes/quickstart/ready-namespace.sh new file mode 100644 index 0000000000..8d5e44fdce --- /dev/null +++ b/site/content/includes/quickstart/ready-namespace.sh @@ -0,0 +1,4 @@ +#!/bin/bash +curl -X POST http://localhost:7201/api/v1/services/m3db/namespace/ready -d '{ + "name": "default" +}' | jq . \ No newline at end of file diff --git a/site/content/includes/quickstart/write-metrics-1.sh b/site/content/includes/quickstart/write-metrics-1.sh new file mode 100755 index 0000000000..453100c993 --- /dev/null +++ b/site/content/includes/quickstart/write-metrics-1.sh @@ -0,0 +1,11 @@ +#!/bin/bash +curl -X POST http://localhost:7201/api/v1/json/write -d '{ + "tags": + { + "__name__": "third_avenue", + "city": "new_york", + "checkout": "1" + }, + "timestamp": '\"$(date "+%s")\"', + "value": 3347.26 +}' diff --git a/site/content/includes/quickstart/write-metrics-2.sh b/site/content/includes/quickstart/write-metrics-2.sh new file mode 100755 index 0000000000..eea2d30348 --- /dev/null +++ b/site/content/includes/quickstart/write-metrics-2.sh @@ -0,0 +1,11 @@ +#!/bin/bash +curl -X POST http://localhost:7201/api/v1/json/write -d '{ + "tags": + { + "__name__": "third_avenue", + "city": "new_york", + "checkout": "1" + }, + "timestamp": '\"$(date "+%s")\"', + "value": 5347.26 +}' diff --git a/site/content/includes/quickstart/write-metrics-3.sh b/site/content/includes/quickstart/write-metrics-3.sh new file mode 100755 index 0000000000..e6b3a5f046 --- /dev/null +++ b/site/content/includes/quickstart/write-metrics-3.sh @@ -0,0 +1,11 @@ +#!/bin/bash +curl -X POST http://localhost:7201/api/v1/json/write -d '{ + "tags": + { + "__name__": "third_avenue", + "city": "new_york", + "checkout": "1" + }, + "timestamp": '\"$(date "+%s")\"', + "value": 7347.26 +}' diff --git a/site/content/operational_guide/namespace_configuration.md b/site/content/operational_guide/namespace_configuration.md index ff8ae8a006..ba8a0c26e3 100644 --- a/site/content/operational_guide/namespace_configuration.md +++ b/site/content/operational_guide/namespace_configuration.md @@ -37,7 +37,7 @@ Once a namespace has finished bootstrapping, you must mark it as ready so that M {{< tabs name="ready_namespaces" >}} {{% tab name="Command" %}} -{{% codeinclude file="operational_guide/ready-namespace.sh" language="shell" %}} +{{< codeinclude file="docs/includes/operational_guide/ready-namespace.sh" language="shell" >}} {{% /tab %}} {{% tab name="Output" %}} @@ -94,7 +94,7 @@ Once a namespace has finished bootstrapping, you must mark it as ready so that M {{< tabs name="ready_namespaces_adv" >}} {{% tab name="Command" %}} -{{% codeinclude file="operational_guide/ready-namespace.sh" language="shell" %}} +{{< codeinclude file="docs/includes/operational_guide/ready-namespace.sh" language="shell" >}} {{% /tab %}} {{% tab name="Output" %}} diff --git a/site/content/quickstart/docker.md b/site/content/quickstart/docker.md index c40243843f..ce97cafb91 100644 --- a/site/content/quickstart/docker.md +++ b/site/content/quickstart/docker.md @@ -70,4 +70,4 @@ The file groups configuration into `coordinator` or `db` sections that represent You can find more information on configuring M3DB in the [operational guides section](/docs/operational_guide/). {{% /notice %}} -{{% fileinclude file="quickstart/common-steps.md" %}} +{{% fileinclude file="quickstart-common-steps.md" %}} From 87e22795752733959305a12f9fd4fddefb1ca3b4 Mon Sep 17 00:00:00 2001 From: ChrisChinchilla Date: Thu, 10 Dec 2020 14:23:01 +0100 Subject: [PATCH 08/12] Remove helm mentions Signed-off-by: ChrisChinchilla --- site/content/cluster/kubernetes_cluster.md | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/site/content/cluster/kubernetes_cluster.md b/site/content/cluster/kubernetes_cluster.md index f8b4ab8da7..0fb4e114f9 100644 --- a/site/content/cluster/kubernetes_cluster.md +++ b/site/content/cluster/kubernetes_cluster.md @@ -12,15 +12,13 @@ This guide assumes you have read the [quickstart](/docs/quickstart), and builds {{% /notice %}} {{% notice tip %}} -We recommend you use [our Kubernetes operator](https://operator.m3db.io/) to deploy M3 to a cluster. It is a more streamlined setup that uses [custom resource definitions](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) to automatically handle operations such as managing cluster placements. +We recommend you use [our Kubernetes operator](/docs/operator) to deploy M3 to a cluster. It is a more streamlined setup that uses [custom resource definitions](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) to automatically handle operations such as managing cluster placements. {{% /notice %}} - ## Prerequisites - A running Kubernetes cluster. - For local testing, you can use [minikube](https://kubernetes.io/docs/tasks/tools/install-minikube/), [Docker desktop](https://www.docker.com/products/docker-desktop), or [we have a script](https://raw.githubusercontent.com/m3db/m3db-operator/master/scripts/kind-create-cluster.sh) you can use to start a 3 node cluster with [Kind](https://kind.sigs.k8s.io/docs/user/quick-start/). -- To use the M3DB operator chart, you need [Helm](https://helm.sh/) ## Create An etcd Cluster @@ -29,7 +27,7 @@ M3 stores its cluster placements and runtime metadata in [etcd](https://etcd.io) We have example services and stateful sets you can use, but feel free to use your own configuration and change any later instructions accordingly. ```shell -kubectl apply -f https://github.com/m3db/m3db-operator/blob/v0.9.0/example/etcd/etcd-minikube.yaml +kubectl apply -f https://raw.githubusercontent.com/m3db/m3db-operator/master/example/etcd/etcd-minikube.yaml ``` If the etcd cluster is running on your local machine, update your _/etc/hosts_ file to match the domains specified in the `etcd` `--initial-cluster` argument. For example to match the `StatefulSet` declaration in the _etcd-minikube.yaml_ above, that is: @@ -46,18 +44,12 @@ Verify that the cluster is running with something like the Kubernetes dashboard, kubectl exec etcd-0 -- env ETCDCTL_API=3 etcdctl endpoint health ``` -## Install the Operator with Helm - -Add the M3 operator repository: - -```shell -helm repo add m3db https://m3-helm-charts.storage.googleapis.com/stable -``` +## Install the Operator -Install the M3 operator chart: +Install the bundled operator manifests in the current namespace: ```shell -helm install m3db-operator m3db/m3db-operator +kubectl apply -f https://raw.githubusercontent.com/m3db/m3db-operator/master/bundle.yaml ``` ## Create an M3 Cluster @@ -73,7 +65,7 @@ The cluster derives pod identity from the `podIdentityConfig` parameter, which i [Read more details on all the parameters in the Operator API docs](https://operator.m3db.io/api/). ```shell -kubectl apply -f https://github.com/m3db/m3db-operator/blob/v0.9.0/example/m3db-local.yaml +kubectl apply -f https://raw.githubusercontent.com/m3db/m3db-operator/master/example/m3db-local.yaml ``` Verify that the cluster is running with something like the Kubernetes dashboard, or the command below: From fc13e9e1d037d3679d8eb3308f4550793590408a Mon Sep 17 00:00:00 2001 From: ChrisChinchilla Date: Fri, 11 Dec 2020 12:22:46 +0100 Subject: [PATCH 09/12] Respond to feedback Signed-off-by: ChrisChinchilla --- netlify.toml | 8 ++++---- site/content/cluster/binaries_cluster.md | 8 ++++---- site/content/cluster/ready-namespace.sh | 2 +- site/content/includes/how_to/ready-namespace.sh | 2 +- .../includes/operational_guide/ready-namespace.sh | 2 +- site/content/quickstart/kubernetes.md | 9 --------- 6 files changed, 11 insertions(+), 20 deletions(-) delete mode 100644 site/content/quickstart/kubernetes.md diff --git a/netlify.toml b/netlify.toml index e55db17600..5945b48124 100644 --- a/netlify.toml +++ b/netlify.toml @@ -32,14 +32,14 @@ from = "/docs/how_to/single_node" to = "docs/quickstart" -[[redirects]] - from="/docs/how_to/cluster_hard_way" - to="/docs/getting_started/binaries_cluster" - [[redirects]] from="docs/how_to/kubernetes" to="/docs/getting_started/kubernetes_cluster" +[[redirects]] + from="docs/quickstart/kubernetes" + to="/docs/cluster/kubernetes_cluster" + # TODO: Fix this with new content type [[redirects]] from = "/talks" diff --git a/site/content/cluster/binaries_cluster.md b/site/content/cluster/binaries_cluster.md index 474634f473..b95a87306b 100644 --- a/site/content/cluster/binaries_cluster.md +++ b/site/content/cluster/binaries_cluster.md @@ -8,7 +8,7 @@ weight: 2 This guide shows you the steps involved in creating an M3 cluster using M3 binaries, typically you would automate this with infrastructure as code tools such as Terraform or [Kubernetes](/docs/operator). {{% notice note %}} -This guide assumes you have read the [quickstart](/docs/quickstart), and builds upon the concepts in that guide. +This guide assumes you have read the [quickstart](/docs/quickstart/binaries), and builds upon the concepts in that guide. {{% /notice %}} ## M3 Architecture @@ -44,7 +44,7 @@ You can download the latest release as [pre-compiled binaries from the M3 GitHub ### Prerequisites -- [Go 1.10 or higher](https://golang.org/dl/) +- [Go](https://golang.org/dl/) - [Make](https://www.gnu.org/software/make/) ### Build @@ -75,12 +75,12 @@ When using GCP the name of your instance is the host name. When you create an in When using AWS, you can use the host name supplied for the provisioned VM as your host ID, or use the `environment` host ID resolver and pass the host ID when launching the database process with an environment variable. {{% /notice %}} -For example, if you used `M3DC_HOST_ID` for the environment variable name, use the following in your configuration: +For example, if you used `M3DB_HOST_ID` for the environment variable name, use the following in your configuration: ```yaml hostID: resolver: config - value: ${M3DC_HOST_ID:""} + value: ${M3DB_HOST_ID:""} ``` Then start the `m3dbnode` process with: diff --git a/site/content/cluster/ready-namespace.sh b/site/content/cluster/ready-namespace.sh index 8d5e44fdce..bd70876ad4 100644 --- a/site/content/cluster/ready-namespace.sh +++ b/site/content/cluster/ready-namespace.sh @@ -1,4 +1,4 @@ #!/bin/bash curl -X POST http://localhost:7201/api/v1/services/m3db/namespace/ready -d '{ "name": "default" -}' | jq . \ No newline at end of file +}' | jq . diff --git a/site/content/includes/how_to/ready-namespace.sh b/site/content/includes/how_to/ready-namespace.sh index 18158c3b8a..e357b57f52 100644 --- a/site/content/includes/how_to/ready-namespace.sh +++ b/site/content/includes/how_to/ready-namespace.sh @@ -1,4 +1,4 @@ #!/bin/bash curl -X POST http://localhost:7201/api/v1/services/m3db/namespace/ready -d '{ "name": "1week_namespace" -}' | jq . \ No newline at end of file +}' | jq . diff --git a/site/content/includes/operational_guide/ready-namespace.sh b/site/content/includes/operational_guide/ready-namespace.sh index 720f2e88c3..27de70ffba 100644 --- a/site/content/includes/operational_guide/ready-namespace.sh +++ b/site/content/includes/operational_guide/ready-namespace.sh @@ -1,4 +1,4 @@ #!/bin/bash curl -X POST http://localhost:7201/api/v1/services/m3db/namespace/ready -d '{ "name": "default_unaggregated" -}' | jq . \ No newline at end of file +}' | jq . diff --git a/site/content/quickstart/kubernetes.md b/site/content/quickstart/kubernetes.md deleted file mode 100644 index cbf0f74b95..0000000000 --- a/site/content/quickstart/kubernetes.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -linkTitle: "Kubernetes" -title: Create a M3DB Cluster on Kubernetes -weight: 2 ---- - -1. Meet the M3DB Kubernetes operator [requirements guide](/docs/operator/getting_started/requirements). -2. Follow the M3DB Kubernetes operator [installation guide](/docs/operator/getting_started/installation). -3. Read the M3DB Kubernetes operator [configuration guide](/docs/operator/configuration/configuring_m3db) and configure [namespaces](/docs/operator/configuration/namespaces). From 26ecc4829bc358a0f26d57ea9ca67917a496b4af Mon Sep 17 00:00:00 2001 From: ChrisChinchilla Date: Mon, 14 Dec 2020 17:26:34 +0100 Subject: [PATCH 10/12] Fix link Signed-off-by: ChrisChinchilla --- site/content/cluster/kubernetes_cluster.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/site/content/cluster/kubernetes_cluster.md b/site/content/cluster/kubernetes_cluster.md index 0fb4e114f9..91ae49e0a3 100644 --- a/site/content/cluster/kubernetes_cluster.md +++ b/site/content/cluster/kubernetes_cluster.md @@ -8,11 +8,11 @@ weight: 1 This guide shows you how to create an M3 cluster of 3 nodes, designed to run locally on the same machine. It is designed to show you how M3 and Kubernetes can work together, but not as a production example. {{% notice note %}} -This guide assumes you have read the [quickstart](/docs/quickstart), and builds upon the concepts in that guide. +This guide assumes you have read the [quickstart](/docs/quickstart/docker), and builds upon the concepts in that guide. {{% /notice %}} {{% notice tip %}} -We recommend you use [our Kubernetes operator](/docs/operator) to deploy M3 to a cluster. It is a more streamlined setup that uses [custom resource definitions](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) to automatically handle operations such as managing cluster placements. +We recommend you use [our Kubernetes operator](/docs/operator/operator) to deploy M3 to a cluster. It is a more streamlined setup that uses [custom resource definitions](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) to automatically handle operations such as managing cluster placements. {{% /notice %}} ## Prerequisites From d54c8c80a97af9d66dd39e95d689aff2c2acfd26 Mon Sep 17 00:00:00 2001 From: ChrisChinchilla Date: Mon, 14 Dec 2020 17:26:49 +0100 Subject: [PATCH 11/12] Update theme to version 0.2.2 Signed-off-by: ChrisChinchilla --- site/go.mod | 2 +- site/go.sum | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/site/go.mod b/site/go.mod index edb967f627..669b979ebe 100644 --- a/site/go.mod +++ b/site/go.mod @@ -2,4 +2,4 @@ module m3-site go 1.15 -require github.com/chronosphereio/victor v0.0.0-20201203171442-756274ea77d7 // indirect +require github.com/chronosphereio/victor v0.0.0-20201211131910-e61baf5e981e // indirect diff --git a/site/go.sum b/site/go.sum index 022b080cde..f025de0ff3 100644 --- a/site/go.sum +++ b/site/go.sum @@ -14,3 +14,5 @@ github.com/chronosphereio/victor v0.0.0-20201116163333-353bdc2746cd/go.mod h1:wz github.com/chronosphereio/victor v0.0.0-20201122114854-310af010cab1 h1:N7NEcoufF4Suq0cS90d+O5OIAsdrZPFOMHuIoX5+LVo= github.com/chronosphereio/victor v0.0.0-20201122114854-310af010cab1/go.mod h1:wz1ngMsk+1D1ug2ObnI3zXs+/ZdBPrWLb6R1WQW3XNM= github.com/chronosphereio/victor v0.0.0-20201203171442-756274ea77d7/go.mod h1:wz1ngMsk+1D1ug2ObnI3zXs+/ZdBPrWLb6R1WQW3XNM= +github.com/chronosphereio/victor v0.0.0-20201211131910-e61baf5e981e h1:ikLZkdEn+xsKF5cG+yeu3TpA61DfPml0a9fvMenXXAE= +github.com/chronosphereio/victor v0.0.0-20201211131910-e61baf5e981e/go.mod h1:wz1ngMsk+1D1ug2ObnI3zXs+/ZdBPrWLb6R1WQW3XNM= From 92fa211fd3cd9215833f725fd09013a099628460 Mon Sep 17 00:00:00 2001 From: ChrisChinchilla Date: Mon, 14 Dec 2020 17:27:06 +0100 Subject: [PATCH 12/12] Tidy Go mods Signed-off-by: ChrisChinchilla --- go.mod | 1 - go.sum | 191 ---------------------------------------------------- site/go.mod | 2 - site/go.sum | 18 ----- 4 files changed, 212 deletions(-) diff --git a/go.mod b/go.mod index fcfdb7568e..6dd0152e39 100644 --- a/go.mod +++ b/go.mod @@ -36,7 +36,6 @@ require ( github.com/golang/mock v1.4.4 github.com/golang/protobuf v1.4.2 github.com/golang/snappy v0.0.1 - github.com/golangci/golangci-lint v1.33.0 // indirect github.com/google/go-cmp v0.5.2 github.com/google/go-jsonnet v0.16.0 github.com/google/uuid v1.1.2-0.20190416172445-c2e93f3ae59f // indirect diff --git a/go.sum b/go.sum index 9300402c59..9ea86511f2 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,3 @@ -4d63.com/gochecknoglobals v0.0.0-20201008074935-acfc0b28355a h1:wFEQiK85fRsEVF0CRrPAos5LoAryUsIX1kPW/WrIqFw= -4d63.com/gochecknoglobals v0.0.0-20201008074935-acfc0b28355a/go.mod h1:wfdC5ZjKSPr7CybKEcgJhUOgeAQW1+7WcyK8OvUilfo= bazil.org/fuse v0.0.0-20160811212531-371fbbdaa898/go.mod h1:Xbm+BRKSBEpa4q4hTSxohYNQpsxXPbPry4JJWOB3LB8= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= @@ -39,8 +37,6 @@ github.com/CAFxX/gcnotifier v0.0.0-20190112062741-224a280d589d/go.mod h1:Rn2zM2M github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/DataDog/datadog-go v3.7.1+incompatible h1:HmA9qHVrHIAqpSvoCYJ+c6qst0lgqEhNW6/KwfkHbS8= github.com/DataDog/datadog-go v3.7.1+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= -github.com/Djarvur/go-err113 v0.0.0-20200511133814-5174e21577d5 h1:XTrzB+F8+SpRmbhAH8HLxhiiG6nYNwaBZjrFps1oWEk= -github.com/Djarvur/go-err113 v0.0.0-20200511133814-5174e21577d5/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= @@ -55,8 +51,6 @@ github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/OneOfOne/xxhash v1.2.8 h1:31czK/TI9sNkxIKfaUfGlU47BAxQ0ztGgd9vPyqimf8= github.com/OneOfOne/xxhash v1.2.8/go.mod h1:eZbhyaAYD41SGSSsnmcpxVoRiQ/MPUTjUdIIOT9Um7Q= -github.com/OpenPeeDeeP/depguard v1.0.1 h1:VlW4R6jmBIv3/u1JNlawEvJMM4J+dPORPaZasQee8Us= -github.com/OpenPeeDeeP/depguard v1.0.1/go.mod h1:xsIw86fROiiwelg+jB2uM9PiKihMMmUx/1V+TNhjQvM= github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= @@ -80,7 +74,6 @@ github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRF github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/alexbrainman/sspi v0.0.0-20180613141037-e580b900e9f5 h1:P5U+E4x5OkVEKQDklVPmzs71WM56RTTRqV4OrDC//Y4= github.com/alexbrainman/sspi v0.0.0-20180613141037-e580b900e9f5/go.mod h1:976q2ETgjT2snVCf2ZaBnyBbVoPERGjUz+0sofzEfro= -github.com/andybalholm/brotli v1.0.0/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239 h1:kFOfPq6dUM1hTo4JG6LR5AXSUEsOjtdm0kw0FtQtMJA= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q= @@ -119,8 +112,6 @@ github.com/bmatcuk/doublestar v1.3.1 h1:rT8rxDPsavp9G+4ZULzqhhUSaI/OPsTZNG88Z3i0 github.com/bmatcuk/doublestar v1.3.1/go.mod h1:wiQtGV+rzVYxB7WIlirSN++5HPtPlXEo9MEoZQC/PmE= github.com/bmizerany/perks v0.0.0-20141205001514-d9a9656a3a4b h1:AP/Y7sqYicnjGDfD5VcY4CIfh1hRXBUavxrvELjTiOE= github.com/bmizerany/perks v0.0.0-20141205001514-d9a9656a3a4b/go.mod h1:ac9efd0D1fsDb3EJvhqgXRbFx7bs2wqZ10HQPeU8U/Q= -github.com/bombsimon/wsl/v3 v3.1.0 h1:E5SRssoBgtVFPcYWUOFJEcgaySgdtTNYzsSKDOY7ss8= -github.com/bombsimon/wsl/v3 v3.1.0/go.mod h1:st10JtZYLE4D5sC7b8xV4zTKZwAQjCH/Hy2Pm1FNZIc= github.com/briandowns/spinner v1.11.1 h1:OixPqDEcX3juo5AjQZAnFPbeUA0jvkp2qzB5gOZJ/L0= github.com/briandowns/spinner v1.11.1/go.mod h1:QOuQk7x+EaDASo80FEXwlwiA+j/PPIcX3FScO+3/ZPQ= github.com/c2h5oh/datasize v0.0.0-20171227191756-4eba002a5eae h1:2Zmk+8cNvAGuY8AyvZuWpUdpQUAXwfom4ReVMe/CTIo= @@ -173,8 +164,6 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0 h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/daixiang0/gci v0.2.4 h1:BUCKk5nlK2m+kRIsoj+wb/5hazHvHeZieBKWd9Afa8Q= -github.com/daixiang0/gci v0.2.4/go.mod h1:+AV8KmHTGxxwp/pY84TLQfFKp2vuKXXJVzF3kD/hfR4= github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -184,8 +173,6 @@ github.com/daviddengcn/go-assert v0.0.0-20150305222929-ba7e68aeeff6 h1:OPIYL/VhQ github.com/daviddengcn/go-assert v0.0.0-20150305222929-ba7e68aeeff6/go.mod h1:N+OekMaElW3rSAfDdNX6Dff3HS237/OhC08jYFW4oCw= github.com/daviddengcn/go-villa v0.0.0-20160111144444-3f35da8ba982 h1:2Trx4ntMtxmus9nN2w1PIqJOI8jB3RjlnDnFm/ImlIU= github.com/daviddengcn/go-villa v0.0.0-20160111144444-3f35da8ba982/go.mod h1:U8xNoHcXfPnZzy9zCxeKRjaJgC1d3613rFHjZVVAqKc= -github.com/denis-tingajkin/go-header v0.3.1 h1:ymEpSiFjeItCy1FOP+x0M2KdCELdEAHUsNa8F+hHc6w= -github.com/denis-tingajkin/go-header v0.3.1/go.mod h1:sq/2IxMhaZX+RRcgHfCRx/m0M5na0fBt4/CRe7Lrji0= github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= @@ -247,8 +234,6 @@ github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31 h1:gclg6gY70GLy github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24= github.com/gnewton/jargo v0.0.0-20150417131352-41f5f186a805 h1:rLZXvVgFIon3lI+v9IL8t1AmG9/yLMSRB5LQ0frn+6Q= github.com/gnewton/jargo v0.0.0-20150417131352-41f5f186a805/go.mod h1:x+HLDnZexLq1FmhrdgFf4c3EWGbqhU3ITvISBFyzvRo= -github.com/go-critic/go-critic v0.5.2 h1:3RJdgf6u4NZUumoP8nzbqiiNT8e1tC2Oc7jlgqre/IA= -github.com/go-critic/go-critic v0.5.2/go.mod h1:cc0+HvdE3lFpqLecgqMaJcvWWH77sLdBp+wLGPM1Yyo= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= @@ -308,29 +293,6 @@ github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/go-toolsmith/astcast v1.0.0 h1:JojxlmI6STnFVG9yOImLeGREv8W2ocNUM+iOhR6jE7g= -github.com/go-toolsmith/astcast v1.0.0/go.mod h1:mt2OdQTeAQcY4DQgPSArJjHCcOwlX+Wl/kwN+LbLGQ4= -github.com/go-toolsmith/astcopy v1.0.0 h1:OMgl1b1MEpjFQ1m5ztEO06rz5CUd3oBv9RF7+DyvdG8= -github.com/go-toolsmith/astcopy v1.0.0/go.mod h1:vrgyG+5Bxrnz4MZWPF+pI4R8h3qKRjjyvV/DSez4WVQ= -github.com/go-toolsmith/astequal v1.0.0 h1:4zxD8j3JRFNyLN46lodQuqz3xdKSrur7U/sr0SDS/gQ= -github.com/go-toolsmith/astequal v1.0.0/go.mod h1:H+xSiq0+LtiDC11+h1G32h7Of5O3CYFJ99GVbS5lDKY= -github.com/go-toolsmith/astfmt v1.0.0 h1:A0vDDXt+vsvLEdbMFJAUBI/uTbRw1ffOPnxsILnFL6k= -github.com/go-toolsmith/astfmt v1.0.0/go.mod h1:cnWmsOAuq4jJY6Ct5YWlVLmcmLMn1JUPuQIHCY7CJDw= -github.com/go-toolsmith/astinfo v0.0.0-20180906194353-9809ff7efb21/go.mod h1:dDStQCHtmZpYOmjRP/8gHHnCCch3Zz3oEgCdZVdtweU= -github.com/go-toolsmith/astp v1.0.0 h1:alXE75TXgcmupDsMK1fRAy0YUzLzqPVvBKoyWV+KPXg= -github.com/go-toolsmith/astp v1.0.0/go.mod h1:RSyrtpVlfTFGDYRbrjyWP1pYu//tSFcvdYrA8meBmLI= -github.com/go-toolsmith/pkgload v1.0.0/go.mod h1:5eFArkbO80v7Z0kdngIxsRXRMTaX4Ilcwuh3clNrQJc= -github.com/go-toolsmith/strparse v1.0.0 h1:Vcw78DnpCAKlM20kSbAyO4mPfJn/lyYA4BJUDxe2Jb4= -github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslWct4wyljWhSRy8= -github.com/go-toolsmith/typep v1.0.0/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU= -github.com/go-toolsmith/typep v1.0.2 h1:8xdsa1+FSIH/RhEkgnD1j2CJOy5mNllW1Q9tRiYwvlk= -github.com/go-toolsmith/typep v1.0.2/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU= -github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b h1:khEcpUM4yFcxg4/FHQWkvVRmgijNXRfzkIDHh23ggEo= -github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM= -github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= -github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/gofrs/flock v0.8.0 h1:MSdYClljsF3PbENUUEx85nkWfJSGfzYI9yEBZOJz6CY= -github.com/gofrs/flock v0.8.0/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= @@ -366,34 +328,6 @@ github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2 h1:23T5iq8rbUYlhpt5DB4XJkc6BU31uODLD1o1gKvZmD0= -github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2/go.mod h1:k9Qvh+8juN+UKMCS/3jFtGICgW8O96FVaZsaxdzDkR4= -github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a h1:w8hkcTqaFpzKqonE9uMCefW1WDie15eSP/4MssdenaM= -github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a/go.mod h1:ryS0uhF+x9jgbj/N71xsEqODy9BN81/GonCZiOzirOk= -github.com/golangci/errcheck v0.0.0-20181223084120-ef45e06d44b6 h1:YYWNAGTKWhKpcLLt7aSj/odlKrSrelQwlovBpDuf19w= -github.com/golangci/errcheck v0.0.0-20181223084120-ef45e06d44b6/go.mod h1:DbHgvLiFKX1Sh2T1w8Q/h4NAI8MHIpzCdnBUDTXU3I0= -github.com/golangci/go-misc v0.0.0-20180628070357-927a3d87b613 h1:9kfjN3AdxcbsZBf8NjltjWihK2QfBBBZuv91cMFfDHw= -github.com/golangci/go-misc v0.0.0-20180628070357-927a3d87b613/go.mod h1:SyvUF2NxV+sN8upjjeVYr5W7tyxaT1JVtvhKhOn2ii8= -github.com/golangci/gocyclo v0.0.0-20180528144436-0a533e8fa43d h1:pXTK/gkVNs7Zyy7WKgLXmpQ5bHTrq5GDsp8R9Qs67g0= -github.com/golangci/gocyclo v0.0.0-20180528144436-0a533e8fa43d/go.mod h1:ozx7R9SIwqmqf5pRP90DhR2Oay2UIjGuKheCBCNwAYU= -github.com/golangci/gofmt v0.0.0-20190930125516-244bba706f1a h1:iR3fYXUjHCR97qWS8ch1y9zPNsgXThGwjKPrYfqMPks= -github.com/golangci/gofmt v0.0.0-20190930125516-244bba706f1a/go.mod h1:9qCChq59u/eW8im404Q2WWTrnBUQKjpNYKMbU4M7EFU= -github.com/golangci/golangci-lint v1.33.0 h1:/o4OtOR3Idim4FHKBJXcy+6ZjNDm82gwK/v6+gWyH9U= -github.com/golangci/golangci-lint v1.33.0/go.mod h1:zMnMLSCaDlrXExYsuq2LOweE9CHVqYk5jexk23UsjYM= -github.com/golangci/ineffassign v0.0.0-20190609212857-42439a7714cc h1:gLLhTLMk2/SutryVJ6D4VZCU3CUqr8YloG7FPIBWFpI= -github.com/golangci/ineffassign v0.0.0-20190609212857-42439a7714cc/go.mod h1:e5tpTHCfVze+7EpLEozzMB3eafxo2KT5veNg1k6byQU= -github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0 h1:MfyDlzVjl1hoaPzPD4Gpb/QgoRfSBR0jdhwGyAWwMSA= -github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0/go.mod h1:66R6K6P6VWk9I95jvqGxkqJxVWGFy9XlDwLwVz1RCFg= -github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca h1:kNY3/svz5T29MYHubXix4aDDuE3RWHkPvopM/EDv/MA= -github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca/go.mod h1:tvlJhZqDe4LMs4ZHD0oMUlt9G2LWuDGoisJTBzLMV9o= -github.com/golangci/misspell v0.0.0-20180809174111-950f5d19e770 h1:EL/O5HGrF7Jaq0yNhBLucz9hTuRzj2LdwGBOaENgxIk= -github.com/golangci/misspell v0.0.0-20180809174111-950f5d19e770/go.mod h1:dEbvlSfYbMQDtrpRMQU675gSDLDNa8sCPPChZ7PhiVA= -github.com/golangci/prealloc v0.0.0-20180630174525-215b22d4de21 h1:leSNB7iYzLYSSx3J/s5sVf4Drkc68W2wm4Ixh/mr0us= -github.com/golangci/prealloc v0.0.0-20180630174525-215b22d4de21/go.mod h1:tf5+bzsHdTM0bsB7+8mt0GUMvjCgwLpTapNZHU8AajI= -github.com/golangci/revgrep v0.0.0-20180526074752-d9c87f5ffaf0 h1:HVfrLniijszjS1aiNg8JbBMO2+E1WIQ+j/gL4SQqGPg= -github.com/golangci/revgrep v0.0.0-20180526074752-d9c87f5ffaf0/go.mod h1:qOQCunEYvmd/TLamH+7LlVccLvUH5kZNhbCgTHoBbp4= -github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4 h1:zwtduBRr5SSWhqsYNgcuWO2kFlpdOZbP0+yRjmvPGys= -github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4/go.mod h1:Izgrg8RkN3rCIMLGE9CyYmU9pY2Jer6DgANEnZ/L/cQ= github.com/golangplus/bytes v0.0.0-20160111154220-45c989fe5450 h1:7xqw01UYS+KCI25bMrPxwNYkSns2Db1ziQPpVq99FpE= github.com/golangplus/bytes v0.0.0-20160111154220-45c989fe5450/go.mod h1:Bk6SMAONeMXrxql8uvOKuAZSu8aM5RUGv+1C6IJaEho= github.com/golangplus/fmt v0.0.0-20150411045040-2a5d6d7d2995 h1:f5gsjBiF9tRRVomCvrkGMMWI8W1f2OBFar2c5oakAP0= @@ -410,7 +344,6 @@ github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-github/v30 v30.1.0 h1:VLDx+UolQICEOKu2m4uAoMti1SxuEBAl7RSEG16L+Oo= @@ -433,7 +366,6 @@ github.com/google/uuid v1.1.2-0.20190416172445-c2e93f3ae59f/go.mod h1:TIyPZe4Mgq github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= -github.com/gookit/color v1.3.1/go.mod h1:R3ogXq2B9rTbXoSHJ1HyUVAZ3poOJHpd9nQmyGZsfvQ= github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= github.com/gophercloud/gophercloud v0.8.0/go.mod h1:Kc/QKr9thLKruO/dG0szY8kRIYS+iENz0ziI0hJf76A= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= @@ -453,12 +385,6 @@ github.com/gorilla/sessions v1.2.0/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/z github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gostaticanalysis/analysisutil v0.0.0-20190318220348-4088753ea4d3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE= -github.com/gostaticanalysis/analysisutil v0.0.3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE= -github.com/gostaticanalysis/analysisutil v0.1.0 h1:E4c8Y1EQURbBEAHoXc/jBTK7Np14ArT8NPUiSFOl9yc= -github.com/gostaticanalysis/analysisutil v0.1.0/go.mod h1:dMhHRU9KTiDcuLGdy87/2gTR8WruwYZrKdRq9m1O6uw= -github.com/gostaticanalysis/comment v1.3.0 h1:wTVgynbFu8/nz6SGgywA0TcyIoAVsYc7ai/Zp5xNGlw= -github.com/gostaticanalysis/comment v1.3.0/go.mod h1:xMicKDx7XRXYdVwY9f9wQpDJVnqWxw9wCauCMKp+IBI= github.com/gotestyourself/gotestyourself v2.2.0+incompatible h1:AQwinXlbQR2HvPjQZOmDhRqsv5mZf+Jb1RnSLxcqZcI= github.com/gotestyourself/gotestyourself v2.2.0+incompatible/go.mod h1:zZKM6oeNM8k+FRljX1mnzVYeS8wiGgQyvST1/GafPbY= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= @@ -554,17 +480,9 @@ github.com/jcmturner/gokrb5/v8 v8.2.0/go.mod h1:T1hnNppQsBtxW0tCHMHTkAt8n/sABdzZ github.com/jcmturner/rpc/v2 v2.0.2 h1:gMB4IwRXYsWw4Bc6o/az2HJgFUA1ffSh90i26ZJ6Xl0= github.com/jcmturner/rpc/v2 v2.0.2/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJki3ELg/Hc= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jgautheron/goconst v0.0.0-20201117150253-ccae5bf973f3 h1:7nkB9fLPMwtn/R6qfPcHileL/x9ydlhw8XyDrLI1ZXg= -github.com/jgautheron/goconst v0.0.0-20201117150253-ccae5bf973f3/go.mod h1:aAosetZ5zaeC/2EfMeRswtxUFBpe2Hr7HzkgX4fanO4= github.com/jhump/protoreflect v1.6.1 h1:4/2yi5LyDPP7nN+Hiird1SAJ6YoxUm13/oxHGRnbPd8= github.com/jhump/protoreflect v1.6.1/go.mod h1:RZQ/lnuN+zqeRVpQigTwO6o0AJUkxbnSnpuG7toUTG4= -github.com/jingyugao/rowserrcheck v0.0.0-20191204022205-72ab7603b68a h1:GmsqmapfzSJkm28dhRoHz2tLRbJmqhU86IPgBtN3mmk= -github.com/jingyugao/rowserrcheck v0.0.0-20191204022205-72ab7603b68a/go.mod h1:xRskid8CManxVta/ALEhJha/pweKBaVG6fWgc0yH25s= -github.com/jirfag/go-printf-func-name v0.0.0-20191110105641-45db9963cdd3 h1:jNYPNLe3d8smommaoQlK7LOA5ESyUJJ+Wf79ZtA7Vp4= -github.com/jirfag/go-printf-func-name v0.0.0-20191110105641-45db9963cdd3/go.mod h1:HEWGJkRDzjJY2sqdDwxccsGicWEf9BQOZsq2tV+xzM0= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= -github.com/jmoiron/sqlx v1.2.1-0.20190826204134-d7d95172beb5/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/jpillora/backoff v0.0.0-20180909062703-3050d21c67d7/go.mod h1:2iMrUgbbvHEiQClaW2NsSzMyGHqN+rDFqY705q49KG0= @@ -585,11 +503,8 @@ github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvW github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.10.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= -github.com/klauspost/compress v1.11.0/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= @@ -601,21 +516,15 @@ github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/kunwardeep/paralleltest v1.0.2 h1:/jJRv0TiqPoEy/Y8dQxCFJhD56uS/pnvtatgTZBHokU= -github.com/kunwardeep/paralleltest v1.0.2/go.mod h1:ZPqNm1fVHPllh5LPVujzbVz1JN2GhLxSfY+oqUsvG30= github.com/kylelemons/godebug v0.0.0-20160406211939-eadb3ce320cb/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= -github.com/kyoh86/exportloopref v0.1.8 h1:5Ry/at+eFdkX9Vsdw3qU4YkvGtzuVfzT4X7S77LoN/M= -github.com/kyoh86/exportloopref v0.1.8/go.mod h1:1tUcJeiioIs7VWe5gcOObrux3lb66+sBqGZrRkMwPgg= github.com/leanovate/gopter v0.2.8 h1:eFPtJ3aa5zLfbxGROSNY75T9Dume60CWBAqoWQ3h/ig= github.com/leanovate/gopter v0.2.8/go.mod h1:gNcbPWNEWRe4lm+bycKqxUYoH5uoVje5SkOJ3uoLer8= -github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.6.0 h1:I5DPxhYJChW9KYc66se+oKFFQX6VuQrKiprsX6ivRZc= github.com/lib/pq v1.6.0/go.mod h1:4vXEAYvW1fRQ2/FhZ78H73A60MHw1geSm145z2mdY1g= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743 h1:143Bb8f8DuGWck/xpNUOckBVYfFbBTnLevfRZ1aVVqo= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= github.com/lightstep/lightstep-tracer-go v0.18.1 h1:vi1F1IQ8N7hNWytK9DpJsUfQhGuNSc19z330K6vl4zk= github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= -github.com/logrusorgru/aurora v0.0.0-20181002194514-a7b3b318ed4e/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4= github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= github.com/m3db/bitset v2.0.0+incompatible h1:wMgri1Z2QSwJ8K/7ZuV7vE4feLOT7EofVC8RakIOybI= github.com/m3db/bitset v2.0.0+incompatible/go.mod h1:X8CCqZmZxs2O6d4qHhiqtAKCin4G5mScPhiwX9rsc5c= @@ -658,10 +567,6 @@ github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/maratori/testpackage v1.0.1 h1:QtJ5ZjqapShm0w5DosRjg0PRlSdAdlx+W6cCKoALdbQ= -github.com/maratori/testpackage v1.0.1/go.mod h1:ddKdw+XG0Phzhx8BFDTKgpWP4i7MpApTE5fXSKAqwDU= -github.com/matoous/godox v0.0.0-20190911065817-5d6d842e92eb h1:RHba4YImhrUVQDHUCe2BNSOz4tVy2yGyXhvYDvxGgeE= -github.com/matoous/godox v0.0.0-20190911065817-5d6d842e92eb/go.mod h1:1BELzlh859Sh1c6+90blK8lbYy0kwQf1bYlBhBysy1s= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= @@ -679,14 +584,10 @@ github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHX github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-runewidth v0.0.2 h1:UnlwIPBGaTZfPQ6T1IGzPI0EkYAQmT9fAEJ/poFC63o= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= -github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/mauricelam/genny v0.0.0-20180903214747-eb2c5232c885 h1:nCU/HIvsORu8nlebFTTkEpxao5zA/yt5Y4yQccm34bM= github.com/mauricelam/genny v0.0.0-20180903214747-eb2c5232c885/go.mod h1:wRyVMWiOZeVj+MieWS5tIBBtJ3RtqqMbPsA5Z+t5b5U= -github.com/mbilski/exhaustivestruct v1.1.0 h1:4ykwscnAFeHJruT+EY3M3vdeP8uXMh0VV2E61iR7XD8= -github.com/mbilski/exhaustivestruct v1.1.0/go.mod h1:OeTBVxQWoEmB2J2JCHmXWPJ0aksxSUOUy+nvtVEfzXc= github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= @@ -696,7 +597,6 @@ github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceT github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= github.com/mitchellh/go-wordwrap v1.0.0 h1:6GlHJ/LTGMrIJbwgdqdl2eEH8o+Exx/0m8ir9Gns0u4= github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= @@ -716,17 +616,12 @@ github.com/modern-go/reflect2 v0.0.0-20180320133207-05fbef0ca5da/go.mod h1:bx2lN github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/moricho/tparallel v0.2.1 h1:95FytivzT6rYzdJLdtfn6m1bfFJylOJK41+lgv/EHf4= -github.com/moricho/tparallel v0.2.1/go.mod h1:fXEIZxG2vdfl0ZF8b42f5a78EhjjD5mX8qUplsoSU4k= -github.com/mozilla/tls-observatory v0.0.0-20200317151703-4fa42e1c2dee/go.mod h1:SrKMQvPiws7F7iqYp8/TX+IhxCYhzr6N/1yb8cwHsGk= github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae h1:VeRdUYdCw49yizlSbMEn2SZ+gT+3IUKx8BqxyQdz+BY= github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= -github.com/nakabonne/nestif v0.3.0 h1:+yOViDGhg8ygGrmII72nV9B/zGxY188TYpfolntsaPw= -github.com/nakabonne/nestif v0.3.0/go.mod h1:dI314BppzXjJ4HsCnbo7XzrJHPszZsjnk5wEBSYHI2c= github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU= github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k= @@ -734,12 +629,8 @@ github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzE github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= -github.com/nbutton23/zxcvbn-go v0.0.0-20180912185939-ae427f1e4c1d h1:AREM5mwr4u1ORQBMvzfzBgpsctsbQikCVpvC+tX285E= -github.com/nbutton23/zxcvbn-go v0.0.0-20180912185939-ae427f1e4c1d/go.mod h1:o96djdrsSGy3AWPyBgZMAGfxZNfgntdJG+11KU4QvbU= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/nishanths/exhaustive v0.1.0 h1:kVlMw8h2LHPMGUVqUj6230oQjjTMFjwcZrnkhXzFfl8= -github.com/nishanths/exhaustive v0.1.0/go.mod h1:S1j9110vxV1ECdCudXRkeMnFQ/DQk9ajLT0Uf2MYZQQ= github.com/nxadm/tail v1.4.4 h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs= @@ -805,8 +696,6 @@ github.com/pelletier/go-toml v1.5.0 h1:5BakdOZdtKJ1FFk6QdL8iSGrMWsXgchNJcrnarjbm github.com/pelletier/go-toml v1.5.0/go.mod h1:5N711Q9dKgbdkxHL+MEfF31hpT7l0S0s/t2kKREewys= github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= -github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d h1:CdDQnGF8Nq9ocOS/xlSptM1N3BbrA6/kmaep5ggwaIA= -github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d/go.mod h1:3OzsM7FXDQlpCiw2j81fOmAwQLnZnLGXVKUzeKQXIAw= github.com/philhofer/fwd v1.0.0 h1:UbZqGr5Y38ApvM/V/jEljVxwocdweyH+vmYvRPBnbqQ= github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= @@ -827,8 +716,6 @@ github.com/pointlander/jetset v1.0.0 h1:bNlaNAX7cDPID9SlcogmXlDWq0KcRJSpKwHXaAM3 github.com/pointlander/jetset v1.0.0/go.mod h1:zY6+WHRPB10uzTajloHtybSicLW1bf6Rz0eSaU9Deng= github.com/pointlander/peg v1.0.0 h1:rtCtA6Fu6xJpILX8WJfU+cvrcKmXgTfG/v+bkLP8NYY= github.com/pointlander/peg v1.0.0/go.mod h1:WJTMcgeWYr6fZz4CwHnY1oWZCXew8GWCF93FaAxPrh4= -github.com/polyfloyd/go-errorlint v0.0.0-20201006195004-351e25ade6e3 h1:Amgs0nbayPhBNGh1qPqqr2e7B2qNAcBgRjnBH/lmn8k= -github.com/polyfloyd/go-errorlint v0.0.0-20201006195004-351e25ade6e3/go.mod h1:wi9BfjxjF/bwiZ701TzmfKu6UKC357IOAtNr0Td0Lvw= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/prashantv/protectmem v0.0.0-20171002184600-e20412882b3a h1:AA9vgIBDjMHPC2McaGPojgV2dcI78ZC0TLNhYCXEKH8= github.com/prashantv/protectmem v0.0.0-20171002184600-e20412882b3a/go.mod h1:lzZQ3Noex5pfAy7mkAeCjcBDteYU85uWWnJ/y6gKU8k= @@ -861,11 +748,6 @@ github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+Gx github.com/prometheus/prometheus v1.8.2-0.20200420081721-18254838fbe2 h1:JtWnHSHMC1h8mb6K5GsFzmhY/WMILsxQ4slsJu+lyg8= github.com/prometheus/prometheus v1.8.2-0.20200420081721-18254838fbe2/go.mod h1:ZnfuiMn3LNsry2q7ECmRe4WcscxmJSd2dIFpOi4w3lM= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/quasilyte/go-consistent v0.0.0-20190521200055-c6f3937de18c/go.mod h1:5STLWrekHfjyYwxBRVRXNOSewLJ3PWfDJd1VyTS21fI= -github.com/quasilyte/go-ruleguard v0.2.0 h1:UOVMyH2EKkxIfzrULvA9n/tO+HtEhqD9mrLSWMr5FwU= -github.com/quasilyte/go-ruleguard v0.2.0/go.mod h1:2RT/tf0Ce0UDj5y243iWKosQogJd8+1G3Rs2fxmlYnw= -github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95 h1:L8QM9bvf68pVdQ3bCFZMDmnt9yqcMBro1pC7F+IPYMY= -github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95/go.mod h1:rlzQ04UMyJXu/aOvhd8qT+hvDrFpiwqp8MRXDY9szc0= github.com/rakyll/statik v0.1.6 h1:uICcfUXpgqtw2VopbIncslhAmE5hwc4g20TEyEENBNs= github.com/rakyll/statik v0.1.6/go.mod h1:OEi9wJV/fMUAGx1eNjq75DKDsJVuEv1U0oYdX6GX8Zs= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= @@ -877,8 +759,6 @@ github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6So github.com/rogpeppe/fastuuid v1.1.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.5.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= -github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rs/cors v1.6.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= @@ -886,10 +766,6 @@ github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0 github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/rveen/ogdl v0.0.0-20200522080342-eeeda1a978e7 h1:Lftq+hHvm0kPWM1sDNqx1jkXAo1zw2YceoFo1hdyj7I= github.com/rveen/ogdl v0.0.0-20200522080342-eeeda1a978e7/go.mod h1:9fqUB54wJS9u5TSXJZhRfTdh1lXVxTytDjed7t2cNdw= -github.com/ryancurrah/gomodguard v1.1.0 h1:DWbye9KyMgytn8uYpuHkwf0RHqAYO6Ay/D0TbCpPtVU= -github.com/ryancurrah/gomodguard v1.1.0/go.mod h1:4O8tr7hBODaGE6VIhfJDHcwzh5GUccKSJBU0UMXJFVM= -github.com/ryanrolds/sqlclosecheck v0.3.0 h1:AZx+Bixh8zdUBxUA1NxbxVAS78vTPq4rCb8OUZI9xFw= -github.com/ryanrolds/sqlclosecheck v0.3.0/go.mod h1:1gREqxyTGR3lVtpngyFo3hZAgk0KCtEdgEkHwDbigdA= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= @@ -900,20 +776,13 @@ github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUt github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/seborama/govcr v2.2.1+incompatible h1:rELLpGxrv9ahY6zC5ruwNJtbNaSYsIC5VE9q7pI/+3I= github.com/seborama/govcr v2.2.1+incompatible/go.mod h1:EgcISudCCYDLzbiAImJ8i7kk4+wTA44Kp+j4S0LhASI= -github.com/securego/gosec/v2 v2.5.0 h1:kjfXLeKdk98gBe2+eYRFMpC4+mxmQQtbidpiiOQ69Qc= -github.com/securego/gosec/v2 v2.5.0/go.mod h1:L/CDXVntIff5ypVHIkqPXbtRpJiNCh6c6Amn68jXDjo= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= -github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c h1:W65qqJCIOVP4jpqPQ0YvHYKwcMEMVWIzWC5iNQQfBTU= -github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c/go.mod h1:/PevMnwAxekIXwN8qQyfc5gl2NlkB3CQlkizAbOkeBs= -github.com/shirou/gopsutil v0.0.0-20190901111213-e4ec7b275ada/go.mod h1:WWnYX4lzhCH5h/3YBfyVA3VbLYjlMZZAQcW9ojMexNc= github.com/shirou/gopsutil v2.17.13-0.20180801053943-8048a2e9c577+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shirou/gopsutil v2.20.5+incompatible h1:tYH07UPoQt0OCQdgWWMgYHy3/a9bcxNpBIysykNIP7I= github.com/shirou/gopsutil v2.20.5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc= -github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= -github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ= github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg= github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= @@ -922,7 +791,6 @@ github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod h1:pMByvH github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.7.0 h1:ShrD1U9pZB12TX0cVy0DtePoCH97K8EtX+mg7ZARUtM= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -934,11 +802,7 @@ github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9 github.com/smartystreets/gunit v1.0.0/go.mod h1:qwPWnhz6pn0NnRBP++URONOVyNkPyr4SauJk4cUOwJs= github.com/soheilhy/cmux v0.1.4 h1:0HKaf1o97UwFjHH9o5XsHUOF+tqmdA7KEzXLpiyaw0E= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/sonatard/noctx v0.0.1 h1:VC1Qhl6Oxx9vvWo3UDgrGXYCeKCe3Wbw7qAWL6FrmTY= -github.com/sonatard/noctx v0.0.1/go.mod h1:9D2D/EoULe8Yy2joDHJj7bv3sZoq9AaSb8B4lqBjiZI= github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= -github.com/sourcegraph/go-diff v0.6.1 h1:hmA1LzxW0n1c3Q4YbrFgg4P99GSnebYa3x8gr0HZqLQ= -github.com/sourcegraph/go-diff v0.6.1/go.mod h1:iBszgVvyxdc8SFZ7gm69go2KDdt3ag071iBaWPF6cjs= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72 h1:qLC7fQah7D6K1B0ujays3HV9gkFtllcxhzImRR7ArPQ= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= @@ -971,8 +835,6 @@ github.com/spf13/viper v1.7.1 h1:pM5oEahlgWv/WnHXpgbKz7iLIxRf65tye2Ci+XFK5sk= github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/src-d/gcfg v1.4.0 h1:xXbNR5AlLSA315x2UO+fTSSAXCDf+Ar38/6oyGbDKQ4= github.com/src-d/gcfg v1.4.0/go.mod h1:p/UMsR43ujA89BJY9duynAwIpvqEujIH/jFlfL7jWoI= -github.com/ssgreg/nlreturn/v2 v2.1.0 h1:6/s4Rc49L6Uo6RLjhWZGBpWWjfzk2yrf1nIW8m4wgVA= -github.com/ssgreg/nlreturn/v2 v2.1.0/go.mod h1:E/iiPB78hV7Szg2YfRgyIrk1AD6JVMTRkkxBiELzh2I= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= @@ -988,13 +850,7 @@ github.com/subosito/gotenv v1.2.1-0.20190917103637-de67a6614a4d h1:YN4gX82mT31qs github.com/subosito/gotenv v1.2.1-0.20190917103637-de67a6614a4d/go.mod h1:GVSeM7r0P1RI1gOKYyN9IuNkhMmQwKGsjVf3ulDrdzo= github.com/tcnksm/go-gitconfig v0.1.2 h1:iiDhRitByXAEyjgBqsKi9QU4o2TNtv9kPP3RgPgXBPw= github.com/tcnksm/go-gitconfig v0.1.2/go.mod h1:/8EhP4H7oJZdIPyT+/UIsG87kTzrzM4UsLGSItWYCpE= -github.com/tdakkota/asciicheck v0.0.0-20200416190851-d7f85be797a2 h1:Xr9gkxfOP0KQWXKNqmwe8vEeSUiUj4Rlee9CMVX2ZUQ= -github.com/tdakkota/asciicheck v0.0.0-20200416190851-d7f85be797a2/go.mod h1:yHp0ai0Z9gUljN3o0xMhYJnH/IcvkdTBOX2fmJ93JEM= -github.com/tetafro/godot v1.3.0 h1:rKXb6aAz2AnwS98jYlU3snCFFXnIInQdaGiftNwpj+k= -github.com/tetafro/godot v1.3.0/go.mod h1:/7NLHhv08H1+8DNj0MElpAACw1ajsCuf3TKNQxA5S+0= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/timakin/bodyclose v0.0.0-20190930140734-f7f2e9bca95e h1:RumXZ56IrCj4CL+g1b9OL/oH0QnsF976bC8xQFYUD5Q= -github.com/timakin/bodyclose v0.0.0-20190930140734-f7f2e9bca95e/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk= github.com/tinylib/msgp v1.1.0 h1:9fQd+ICuRIu/ue4vxJZu6/LzxN0HwMds2nq/0cFvxHU= github.com/tinylib/msgp v1.1.0/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= github.com/tj/assert v0.0.0-20171129193455-018094318fb0 h1:Rw8kxzWo1mr6FSaYXjQELRe88y2KdfynXdnK72rdjtA= @@ -1005,10 +861,6 @@ github.com/tj/go-spin v1.1.0/go.mod h1:Mg1mzmePZm4dva8Qz60H2lHwmJ2loum4VIrLgVnKw github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 h1:LnC5Kc/wtumK+WB441p7ynQJzVuNRJiqddSIE3IlSEQ= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tomarrell/wrapcheck v0.0.0-20200807122107-df9e8bcb914d h1:3EZyvNUMsGD1QA8cu0STNn1L7I77rvhf2IhOcHYQhSw= -github.com/tomarrell/wrapcheck v0.0.0-20200807122107-df9e8bcb914d/go.mod h1:yiFB6fFoV7saXirUGfuK+cPtUh4NX/Hf5y2WC2lehu0= -github.com/tommy-muehle/go-mnd v1.3.1-0.20200224220436-e6f9a994e8fa h1:RC4maTWLKKwb7p1cnoygsbKIgNlJqSYBeAFON3Ar8As= -github.com/tommy-muehle/go-mnd v1.3.1-0.20200224220436-e6f9a994e8fa/go.mod h1:dSUh0FtTP8VhvkL1S+gUR1OKd9ZnSaozuI6r3m6wOig= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/twmb/murmur3 v1.1.4 h1:NnlAxelwOgdQDmYuV0T/K+tpDQ/8wdsDVOGmvUqBOCw= github.com/twmb/murmur3 v1.1.4/go.mod h1:Qq/R7NUyOfr65zD+6Q5IHKsJLwP7exErjN6lyyq3OSQ= @@ -1025,18 +877,9 @@ github.com/uber/tchannel-go v1.14.0/go.mod h1:Rrgz1eL8kMjW/nEzZos0t+Heq0O4LhnUJV github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/ulikunitz/xz v0.5.5 h1:pFrO0lVpTBXLpYw+pnLj6TbvHuyjXMfjGeCwSqCVwok= github.com/ulikunitz/xz v0.5.5/go.mod h1:2bypXElzHzzJZwzH67Y6wb67pO62Rzfn7BSiF4ABRW8= -github.com/ultraware/funlen v0.0.3 h1:5ylVWm8wsNwH5aWo9438pwvsK0QiqVuUrt9bn7S/iLA= -github.com/ultraware/funlen v0.0.3/go.mod h1:Dp4UiAus7Wdb9KUZsYWZEWiRzGuM2kXM1lPbfaF6xhA= -github.com/ultraware/whitespace v0.0.4 h1:If7Va4cM03mpgrNH9k49/VOicWpGoG70XPBFFODYDsg= -github.com/ultraware/whitespace v0.0.4/go.mod h1:aVMh/gQve5Maj9hQ/hg+F75lr/X5A89uZnzAmWSineA= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.22.1 h1:+mkCCcOFKPnCmVYVcURKps1Xe+3zP90gSYGNfRkjoIY= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/uudashr/gocognit v1.0.1 h1:MoG2fZ0b/Eo7NXoIwCVFLG5JED3qgQz5/NEE+rOsjPs= -github.com/uudashr/gocognit v1.0.1/go.mod h1:j44Ayx2KW4+oB6SWMv8KsmHzZrOInQav7D3cQMJ5JUM= -github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -github.com/valyala/fasthttp v1.16.0/go.mod h1:YOKImeEosDdBPnxc0gy7INqi3m1zK6A+xl6TwOBhHCA= -github.com/valyala/quicktemplate v1.6.3/go.mod h1:fwPzK2fHuYEODzJ9pkw0ipCPNHZ2tD5KW4lOuSdPKzY= github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a h1:0R4NLDRDZX6JcmhJgXi5E4b8Wg84ihbmUKp/GvSPEzc= github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= github.com/vmihailenco/msgpack v2.8.3+incompatible h1:76LCLwxS08gKHRpGA10PBxfWk72JfUH6mgzp2+URwYM= @@ -1057,9 +900,7 @@ github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5 github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.etcd.io/bbolt v1.3.5 h1:XAzx9gjCb0Rxj7EoqcClPD1d5ZBxZJk0jbuoPHenBt0= go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= @@ -1170,8 +1011,6 @@ golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200301022130-244492dfa37a h1:GuSPYbZzB5/dcLNCwLQLsg3obCJtX9IJhpXkvY7kzk0= golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202 h1:VvcQYSHwXgi7W+TpUR6A9g6Up98WAHf3f/ulnJ62IyA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -1203,21 +1042,15 @@ golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190110163146-51295c7ec13a/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190221204921-83362c3779f5/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190307163923-6a08e3108db3/go.mod h1:25r3+/G6/xytQM8iWZKq3Hn0kr0rgFKPUNVEL/dr3z4= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190311215038-5c2858a9cfe5/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190322203728-c1a832b0ad89/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= @@ -1231,7 +1064,6 @@ golang.org/x/tools v0.0.0-20190729092621-ff9f1409240a/go.mod h1:jcCCGcm9btYwXyDq golang.org/x/tools v0.0.0-20190813034749-528a2984e271/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190910044552-dd2b5c81c578/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -1243,25 +1075,10 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191203134012-c197fd4bf371/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117220505-0cba7a3a9ee9/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200305205014-bc073721adb6/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200324003944-a576cf524670/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200410194907-79a7a3126eef/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200414032229-332987a829c3/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200422022333-3d57cf2e726e/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200426102838-f3a5411a4c3b h1:zSzQJAznWxAh9fZxiPy2FZo+ZZEYoYFYYDYdOrU7AaM= golang.org/x/tools v0.0.0-20200426102838-f3a5411a4c3b/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200622203043-20e05c1c8ffa/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200624225443-88f3c62a19ff/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200625211823-6506e20df31f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200724022722-7017fd6b1305/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200731060945-b5fad4ed8dd6/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200812195022-5ae4c3c160a0/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200831203904-5a2aa26beb65/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= -golang.org/x/tools v0.0.0-20201001104356-43ebab892c4c/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= -golang.org/x/tools v0.0.0-20201002184944-ecd9fd270d5d/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= -golang.org/x/tools v0.0.0-20201007032633-0806396f153e/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= -golang.org/x/tools v0.0.0-20201011145850-ed2f50202694/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.0.0-20201013201025-64a9e34f3752 h1:2ntEwh02rqo2jSsrYmp4yKHHjh0CbXP3ZtSUetSB+q8= golang.org/x/tools v0.0.0-20201013201025-64a9e34f3752/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1400,14 +1217,6 @@ k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= k8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E= k8s.io/utils v0.0.0-20191114184206-e782cd3c129f/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= -mvdan.cc/gofumpt v0.0.0-20200802201014-ab5a8192947d h1:t8TAw9WgTLghti7RYkpPmqk4JtQ3+wcP5GgZqgWeWLQ= -mvdan.cc/gofumpt v0.0.0-20200802201014-ab5a8192947d/go.mod h1:bzrjFmaD6+xqohD3KYP0H2FEuxknnBmyyOxdhLdaIws= -mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed h1:WX1yoOaKQfddO/mLzdV4wptyWgoH/6hwLs7QHTixo0I= -mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed/go.mod h1:Xkxe497xwlCKkIaQYRfC7CSLworTXY9RMqwhhCm+8Nc= -mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b h1:DxJ5nJdkhDlLok9K6qO+5290kphDJbHOQO1DFFFTeBo= -mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jCoyKnw3vv5biOc3JnIcYfL4= -mvdan.cc/unparam v0.0.0-20200501210554-b37ab49443f7 h1:kAREL6MPwpsk1/PQPFD3Eg7WAQR5mPTWZJaBiG5LDbY= -mvdan.cc/unparam v0.0.0-20200501210554-b37ab49443f7/go.mod h1:HGC5lll35J70Y5v7vCGb9oLhHoScFwkHDJm/05RdSTc= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI= sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs= diff --git a/site/go.mod b/site/go.mod index 669b979ebe..4ba2e34207 100644 --- a/site/go.mod +++ b/site/go.mod @@ -1,5 +1,3 @@ module m3-site go 1.15 - -require github.com/chronosphereio/victor v0.0.0-20201211131910-e61baf5e981e // indirect diff --git a/site/go.sum b/site/go.sum index f025de0ff3..e69de29bb2 100644 --- a/site/go.sum +++ b/site/go.sum @@ -1,18 +0,0 @@ -github.com/chronosphereio/docs-theme v0.0.0-20201009145234-6eb51c4ba87e/go.mod h1:vmH57xlaJmtH7jjovyuwXKe+2316CnpaFShoEAG72gQ= -github.com/chronosphereio/docs-theme v0.0.0-20201009164131-d9219ac30467 h1:YtTpgpzrlYMN0nTiPTv0dNeBG3kx+AIisv/wbNrqEZU= -github.com/chronosphereio/docs-theme v0.0.0-20201009164131-d9219ac30467/go.mod h1:vmH57xlaJmtH7jjovyuwXKe+2316CnpaFShoEAG72gQ= -github.com/chronosphereio/docs-theme v0.0.0-20201022162748-0ed11ce73f36 h1:Wz/dFFd3bVR+XZ7shqLyuZwyIh5yDbhIhdbdkFEFnH4= -github.com/chronosphereio/docs-theme v0.0.0-20201022162748-0ed11ce73f36/go.mod h1:vmH57xlaJmtH7jjovyuwXKe+2316CnpaFShoEAG72gQ= -github.com/chronosphereio/victor v0.0.0-20201116094105-f1b13fb86890 h1:yO288wpyv4dr3nXdXjIsEM60DmeLzC4XquvnKCvoLR0= -github.com/chronosphereio/victor v0.0.0-20201116094105-f1b13fb86890/go.mod h1:wz1ngMsk+1D1ug2ObnI3zXs+/ZdBPrWLb6R1WQW3XNM= -github.com/chronosphereio/victor v0.0.0-20201116123616-0454e7256e57 h1:EXZaeDfAkZsOYoP3zCyZlhb+PXZO/PQSmilpTX8bX+0= -github.com/chronosphereio/victor v0.0.0-20201116123616-0454e7256e57/go.mod h1:wz1ngMsk+1D1ug2ObnI3zXs+/ZdBPrWLb6R1WQW3XNM= -github.com/chronosphereio/victor v0.0.0-20201116125303-247fa0ea9ed5 h1:/eksfMA9uddkIKZ5A6zcpVHjASfV6sVuNDXHSAgMtx0= -github.com/chronosphereio/victor v0.0.0-20201116125303-247fa0ea9ed5/go.mod h1:wz1ngMsk+1D1ug2ObnI3zXs+/ZdBPrWLb6R1WQW3XNM= -github.com/chronosphereio/victor v0.0.0-20201116163333-353bdc2746cd h1:6iKb0tNHpJX+3WKyv0s/dZ1IN8U7CMylYRPsv7Rjdpo= -github.com/chronosphereio/victor v0.0.0-20201116163333-353bdc2746cd/go.mod h1:wz1ngMsk+1D1ug2ObnI3zXs+/ZdBPrWLb6R1WQW3XNM= -github.com/chronosphereio/victor v0.0.0-20201122114854-310af010cab1 h1:N7NEcoufF4Suq0cS90d+O5OIAsdrZPFOMHuIoX5+LVo= -github.com/chronosphereio/victor v0.0.0-20201122114854-310af010cab1/go.mod h1:wz1ngMsk+1D1ug2ObnI3zXs+/ZdBPrWLb6R1WQW3XNM= -github.com/chronosphereio/victor v0.0.0-20201203171442-756274ea77d7/go.mod h1:wz1ngMsk+1D1ug2ObnI3zXs+/ZdBPrWLb6R1WQW3XNM= -github.com/chronosphereio/victor v0.0.0-20201211131910-e61baf5e981e h1:ikLZkdEn+xsKF5cG+yeu3TpA61DfPml0a9fvMenXXAE= -github.com/chronosphereio/victor v0.0.0-20201211131910-e61baf5e981e/go.mod h1:wz1ngMsk+1D1ug2ObnI3zXs+/ZdBPrWLb6R1WQW3XNM=