mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-11-23 20:37:12 +01:00
docs/Cluster-VictoriaMetrics.md: add Multitenancy
chapter
This commit is contained in:
parent
66b0ae79a5
commit
23010e6321
@ -36,6 +36,25 @@ It increases cluster availability, simplifies cluster maintenance and cluster sc
|
|||||||
<img src="https://docs.google.com/drawings/d/e/2PACX-1vTvk2raU9kFgZ84oF-OKolrGwHaePhHRsZEcfQ1I_EC5AB_XPWwB392XshxPramLJ8E4bqptTnFn5LL/pub?w=1104&h=746">
|
<img src="https://docs.google.com/drawings/d/e/2PACX-1vTvk2raU9kFgZ84oF-OKolrGwHaePhHRsZEcfQ1I_EC5AB_XPWwB392XshxPramLJ8E4bqptTnFn5LL/pub?w=1104&h=746">
|
||||||
|
|
||||||
|
|
||||||
|
## Multitenancy
|
||||||
|
|
||||||
|
VictoriaMetrics cluster supports multiple isolated tenants (aka namespaces).
|
||||||
|
Tenants are identified by `accountID` or `accountID:projectID`, which are put inside request urls.
|
||||||
|
See [these docs](#url-format) for details. Some facts about tenants in VictoriaMetrics:
|
||||||
|
|
||||||
|
* Each `accountID` and `projectID` is identified by an arbitrary 32-bit integer in the range `[0 .. 2^32)`.
|
||||||
|
If `projectID` is missing, then it is automatically assigned to `0`. It is expected that other information about tenants
|
||||||
|
such as auth tokens, tenant names, limits, accounting, etc. is stored in a separate relational database. This database must be managed
|
||||||
|
by a separate service sitting in front of VictoriaMetrics cluster.
|
||||||
|
|
||||||
|
* Tenants are automatically created when the first data point is written into the given tenant.
|
||||||
|
|
||||||
|
* Data for all the tenants is evenly spread among available `vmstorage` nodes. This guarantees even load among `vmstorage` nodes
|
||||||
|
when different tenants have different amounts of data and different query load.
|
||||||
|
|
||||||
|
* VictoriaMetrics doesn't support querying multiple tenants in a single request.
|
||||||
|
|
||||||
|
|
||||||
## Binaries
|
## Binaries
|
||||||
|
|
||||||
Compiled binaries for cluster version are available in the `assets` section of [releases page](https://github.com/VictoriaMetrics/VictoriaMetrics/releases).
|
Compiled binaries for cluster version are available in the `assets` section of [releases page](https://github.com/VictoriaMetrics/VictoriaMetrics/releases).
|
||||||
@ -145,7 +164,8 @@ or [an alternative dashboard for VictoriaMetrics cluster](https://grafana.com/gr
|
|||||||
### URL format
|
### URL format
|
||||||
|
|
||||||
* URLs for data ingestion: `http://<vminsert>:8480/insert/<accountID>/<suffix>`, where:
|
* URLs for data ingestion: `http://<vminsert>:8480/insert/<accountID>/<suffix>`, where:
|
||||||
- `<accountID>` is an arbitrary number identifying namespace for data ingestion (aka tenant)
|
- `<accountID>` is an arbitrary 32-bit integer identifying namespace for data ingestion (aka tenant). It is possible to set it as `accountID:projectID`,
|
||||||
|
where `projectID` is also arbitrary 32-bit integer. If `projectID` isn't set, then it equals to `0`.
|
||||||
- `<suffix>` may have the following values:
|
- `<suffix>` may have the following values:
|
||||||
- `prometheus` - for inserting data with [Prometheus remote write API](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#remote_write)
|
- `prometheus` - for inserting data with [Prometheus remote write API](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#remote_write)
|
||||||
- `influx/write` or `influx/api/v2/write` - for inserting data with [Influx line protocol](https://docs.influxdata.com/influxdb/v1.7/write_protocols/line_protocol_tutorial/)
|
- `influx/write` or `influx/api/v2/write` - for inserting data with [Influx line protocol](https://docs.influxdata.com/influxdb/v1.7/write_protocols/line_protocol_tutorial/)
|
||||||
|
Loading…
Reference in New Issue
Block a user