Menu
Hosted-metrics-API
This agent acts as a controller service for managing deployments of Metrictank clusters inside of a Kubernetes cluster. It is also referred to as hm-api.
Features
- Creating/Updating/Deleting of hosted metrics instances, containing metrictank, graphite and tsdb-gw.
- Interaction via HTTP API
- Diff functionality which verifies if an existing HM instance is matching the present configuration
- Control over rollout concurrency, to not overload Kafka by restarting all Metrictank services at once
- Colored deployments to deploy two clusters of Metrictanks with different configurations and then switch between them
- Customizable plans to deploy many instances of Metrictank clusters according to preset configurations
Limitations
- Only one deployment per instance may be rolling out at any given point in time, concurrent deployments in multiple waves are not allowed
- There is currently no graphical/web based interface to edit instance settings yet, but this is planned.
- HM-API does not manage the Kafka/Zookeeper and storage (Cassandra or Bigtable) clusters which are used by Metrictank and its surrounding services
- HM-API does not manage the agents that collect the data which gets fed into the Metrictank clusters
Terminology
Explanation of terms used in the documentation
Term | Explanation |
---|---|
Instance | A hosted metrics instance. Includes Kubernetes deployments, services and ingresses for Tsdb-Gw, Graphite, Metrictank, Carbon-Relay-Ng |
Partition | All the data is partitioned into partitions. In Kafka those partitions refer to Kafka partitions, in the backend stores (Cassandra / BigTable) the data is keyed by a partition key |
Partitioning policy | Each Metrictank handles multiple partitions. Partition assignment to Metrictanks is defined by the partitioning policy chosen for the instance. By default, the ConstantWithNoOverlap policy is used with 8 partitions per Metrictank read and write deployment and a replicationFactor set to 2 , only affecting read deployments, to achieve high availability. See Concepts/Partitioning Policy for more details. |
Deployment | A Kubernetes Deployment, it typically manages one or more pods |
Pod | A Kubernetes pod, typically containing one or more docker containers |
API Endpoint | A URL in the HM-API HTTP API that has a specific function, as explained here |
Crng | Short for Carbon-Relay-Ng, the project on GitHub |
Graphite | The Graphite project |
Tsdb-Gw | The Tsdb-Gw project |
Metrictank | The Metrictank project |