151 lines
3.8 KiB
Plaintext
151 lines
3.8 KiB
Plaintext
---
|
|
layout: api
|
|
page_title: Scaling Policies - HTTP API
|
|
description: The /scaling/policy endpoints are used to list and view scaling policies.
|
|
---
|
|
|
|
# Scaling Policies HTTP API
|
|
|
|
The `/scaling/policies` and `/scaling/policy/` endpoints are used to list and view scaling policies.
|
|
|
|
## List Scaling Policies
|
|
|
|
This endpoint returns the scaling policies from all jobs.
|
|
|
|
| Method | Path | Produces |
|
|
| ------ | ------------------- | ------------------ |
|
|
| `GET` | `/scaling/policies` | `application/json` |
|
|
|
|
The table below shows this endpoint's support for
|
|
[blocking queries](/api-docs#blocking-queries), [consistency modes](/api-docs#consistency-modes) and
|
|
[required ACLs](/api-docs#acls).
|
|
|
|
| Blocking Queries | Consistency Modes | ACL Required |
|
|
| ---------------- | ----------------- | --------------------------------- |
|
|
| `YES` | `all` | `namespace:list-scaling-policies` |
|
|
|
|
### Parameters
|
|
|
|
- `job` `(string: "")`- Specifies the job ID to filter policies by.
|
|
|
|
- `type` `(string: "")` - Specifies the type of scaling policy to filter by. In
|
|
the open source version of Nomad, `horizontal` is the only supported value.
|
|
Within Nomad Enterprise, `vertical_mem` and `vertical_cpu` are supported along
|
|
with `vertical`. The latter returns policies matching both `vertical_mem` and
|
|
`vertical_cpu`.
|
|
|
|
### Sample Request
|
|
|
|
```shell-session
|
|
$ curl \
|
|
https://localhost:4646/v1/scaling/policies
|
|
```
|
|
|
|
```shell-session
|
|
$ curl \
|
|
https://localhost:4646/v1/scaling/policies?job=example
|
|
```
|
|
|
|
```shell-session
|
|
$ curl \
|
|
https://localhost:4646/v1/scaling/policies?type=vertical
|
|
```
|
|
|
|
### Sample Response
|
|
|
|
```json
|
|
[
|
|
{
|
|
"ID": "b2c64295-4315-2fdc-6158-a27156808729",
|
|
"Enabled": true,
|
|
"Type": "vertical_cpu",
|
|
"Target": {
|
|
"Namespace": "default",
|
|
"Job": "example",
|
|
"Group": "cache",
|
|
"Task": "redis"
|
|
},
|
|
"CreateIndex": 1340,
|
|
"ModifyIndex": 1340
|
|
},
|
|
{
|
|
"ID": "c355d0ec-7aa1-2604-449d-4ec79c813d2c",
|
|
"Enabled": true,
|
|
"Type": "vertical_mem",
|
|
"Target": {
|
|
"Job": "example",
|
|
"Group": "cache",
|
|
"Task": "redis",
|
|
"Namespace": "default"
|
|
},
|
|
"CreateIndex": 1340,
|
|
"ModifyIndex": 1340
|
|
},
|
|
{
|
|
"ID": "31a53813-24df-b2ad-77dc-1b4bad4e7dca",
|
|
"Enabled": true,
|
|
"Type": "horizontal",
|
|
"Target": {
|
|
"Job": "example",
|
|
"Group": "cache",
|
|
"Namespace": "default"
|
|
},
|
|
"CreateIndex": 1358,
|
|
"ModifyIndex": 1358
|
|
}
|
|
]
|
|
```
|
|
|
|
## Read Scaling Policy
|
|
|
|
This endpoint reads a specific scaling policy.
|
|
|
|
| Method | Path | Produces |
|
|
| ------ | ---------------------------- | ------------------ |
|
|
| `GET` | `/scaling/policy/:policy_id` | `application/json` |
|
|
|
|
The table below shows this endpoint's support for
|
|
[blocking queries](/api-docs#blocking-queries), [consistency modes](/api-docs#consistency-modes) and
|
|
[required ACLs](/api-docs#acls).
|
|
|
|
| Blocking Queries | Consistency Modes | ACL Required |
|
|
| ---------------- | ----------------- | ------------------------------- |
|
|
| `YES` | `all` | `namespace:read-scaling-policy` |
|
|
|
|
### Parameters
|
|
|
|
- `:policy_id` `(string: <required>)` - Specifies the ID of the scaling policy (as returned
|
|
by the scaling policy list endpoint). This is specified as part of the path.
|
|
|
|
### Sample Request
|
|
|
|
```shell-session
|
|
$ curl \
|
|
https://localhost:4646/v1/scaling/policy/5e9f9ef2-5223-6d35-bac1-be0f3cb974ad
|
|
```
|
|
|
|
### Sample Response
|
|
|
|
```json
|
|
{
|
|
"CreateIndex": 10,
|
|
"Enabled": true,
|
|
"ID": "5e9f9ef2-5223-6d35-bac1-be0f3cb974ad",
|
|
"Type": "horizontal",
|
|
"Max": 10,
|
|
"Min": 0,
|
|
"ModifyIndex": 10,
|
|
"Policy": {
|
|
"engage": true,
|
|
"foo": "bar",
|
|
"howdy": "doody",
|
|
"value": 6.0
|
|
},
|
|
"Target": {
|
|
"Group": "cache",
|
|
"Job": "example",
|
|
"Namespace": "default"
|
|
}
|
|
}
|
|
```
|