- Register Host Information
- Get Host Information
- Get Host Information By Custom Identifier
- Update Host Information
- Update Host Status
- Bulk Update Host Statuses
- Update Host Roles
- Retire Hosts
- Bulk Retire Hosts
- List Hosts
- List Metric Names
- List Monitoring Statuses
Register Host Information
Registering an agent-running host to Mackerel.
POST
/api/v0/hosts
Required permissions for the API key
- Read
- Write
Input
By designating the role to which a host belongs in the input, the host will be assigned to that role. If a service or role name that does not yet exist is entered, it will be created.
This object holds the following keys:
| KEY | TYPE | DESCRIPTION |
|---|---|---|
name |
string | name of the host |
displayName |
string | [optional] host management name |
customIdentifier |
string | [optional] an identifier for the host that is user-specific and unique to the organization*1 |
meta |
object | host metadata*2. Empty objects can also be registered. |
memo |
string | [optional] notes related to the host |
interfaces |
array[object] | [optional] host network interface information*3 |
roleFullnames |
array[string] | [optional] an array of the full name of the role to which the host belongs*4 |
checks |
array[hash[string]] | [optional] an array of the check monitoring item that monitors the host*5 |
Response
Success
{ "id": <hostId> }
<hostId> : The host ID that was assigned to this host. With this request the host will be identified by this ID.
Error
| STATUS CODE | DESCRIPTION |
|---|---|
| 400 | when the input is in a format that can’t be accepted. |
| 403 | when the API key doesn't have the required permissions / when accessing from outside the permitted IP address range |
*1 customIdentifier
If null or "" (an empty string) is specified customIdentifier, the following will occur depending on the HTTP request method.
For POST
It is registered as null.
For PUT
The registered value is overwritten with null.
*2 meta
meta contains various information. For example, if the host is registered by mackerel-agent or Cloud Integration, the following information will be registered.
| KEY | TYPE | DESCRIPTION |
|---|---|---|
agent-name |
string | agent name e.g. "mackerel-agent/0.27.0 (Revision dfbccea)" |
agent-revision |
string | agent revision (Git commit SHA1) e.g. "2f531c6" |
agent-version |
string | agent version, e.g. "0.4.2" |
block_device |
hash[object] | block device info. The keys are device names, and the values are objects that contain variables like size. |
cpu |
array[object] | each CPU’s core info. each object holds mhz and model_name |
filesystem |
hash[object] | filesystem information. The keys are filesystem names, and the values are objects that hold kb_available, kb_used, etc. |
kernel |
hash[string] | kernel information; can be got with the command uname |
memory |
hash[string] | memory information |
cloud |
hash[object] | Exists if the host is registered through Cloud Integration such as AWS Integration. An object that contains keys like provider and metadata. |
*3 interfaces
One element of interfaces is an object that holds the following keys.
| KEY | TYPE | DESCRIPTION |
|---|---|---|
name |
string | interface name, e.g. "eth0" |
macAddress |
string | [optional] interface MAC address |
ipv4Addresses |
array[string] | [optiona] interface IPv4 addresses |
ipv6Addresses |
array[string] | [optiona] interface IPv6 addresses |
ipAddress |
string | [optional] interface IPv4 address |
ipv6Address |
string | [optional] interface IPv6 address |
However, if ipAddress and ipv4Addresses or ipv6Address and ipv6Addresses are specified at the same time, then ipv4Addresses and ipv6Addresses will take precedence.
*4 roleFullnames
The full names of roles are in this character string format: <service name>:<role name>
| e.g. | A role named db-master in a service named Hatena-Bookmark would be Hatena-Bookmark:db-master |
|---|
Usable characters include /^[A-Za-z0-9][A-Za-z0-9_-]+$/
*5 checks
One element of checks is an object that holds the following keys.
| KEY | TYPE | DESCRIPTION |
|---|---|---|
name |
string | name of the monitor ([a-zA-Z0-9_-]+). |
memo |
string | [optional] notes regarding the monitor. |
Get Host Information
GET
/api/v0/hosts/<hostId>
Required permissions for the API key
- Read
Response
{ "host": <host> }
<host> is an object that holds the following keys:
| KEY | TYPE | DESCRIPTION |
|---|---|---|
createdAt |
number | the host's registration timestamp(in epoch seconds) |
id |
string | the host's ID |
name |
string | the name of the host |
displayName |
string | [optional] the host's management name |
customIdentifier |
string | [optional] an identifier for the host that is user-specific and unique to the organization |
meta |
object | host metadata |
interfaces |
array[object] | host network interface information |
size |
string | host type ("standard" or "micro") |
status |
string | status of the host("working", "standby" etc.) |
memo |
string | notes related to the host |
isRetired |
boolean | whether or not the host is retired |
retiredAt |
number | [optional] the host's retirement timestamp(in epoch seconds) |
roles |
hash[array[string]] | List of the roles to which the host belongs. The keys are service names, and the values are arrays of role names. |
Get Host Information By Custom Identifier
Get information of a non-retired host by specifying its customIdentifier. You should apply URL encoding to <customIdentifier> because it can contain reserved characters such as / and ?.
GET
/api/v0/hosts-by-custom-identifier/<customIdentifier>
Required permissions for the API key
- Read
Input (Query parameter)
With the following parameter, you can compare <customIdentifier> in a case-insensitive manner and retrieve single host information. In that case, old one is chosen. If caseInsensitive is not specified, a host information by a case-sensitive search will be returned.
| PARAM | TYPE | DESCRIPTION |
|---|---|---|
caseInsensitive |
boolean | [optional] whether to compare <customIdentifier> to case-insensitive or not. If true, a case-insensitive search will be performed. |
Response
{ "host": <host> }
<host> is the same type as the object that changes in Get Host Information
Update Host Information
PUT
/api/v0/hosts/<hostId>
Required permissions for the API key
- Read
- Write
Input
Same as Register Host Information.
A host remains to belong to the roles which you didn't specify by roleFullnames.
If you want to Un-assign roles from a host, please use Update Host Roles API.
Response
Success
{ "id": <hostId> }
Error
| STATUS CODE | DESCRIPTION |
|---|---|
| 404 | when the host that corresponds to the <hostId> can’t be found |
| 400 | when JSON format is incorrect |
| 403 | when the API key doesn't have the required permissions / when accessing from outside the permitted IP address range |
Update Host Status
POST
/api/v0/hosts/<hostId>/status
Required permissions for the API key
- Read
- Write
Input
{ "status": <hostStatus> }
<hostStatus> includes: "standby", "working", "maintenance", or "poweroff"
Response
Success
{ "success": true }
Error
| STATUS CODE | DESCRIPTION |
|---|---|
| 404 | when the host that corresponds to the <hostId> can’t be found |
| 400 | when JSON format is incorrect |
| 403 | when the API key doesn't have the required permissions / when accessing from outside the permitted IP address range |
Bulk Update Host Statuses
This will update multiple registered host statuses.
POST
/api/v0/hosts/bulk-update-statuses
Required permissions for the API key
- Read
- Write
Input
{ "status": <hostStatus>, "ids": [ <hostId>, <hostId>, … ] }
You can specify <hostId> up to 30.
<hostStatus> includes: "standby", "working", "maintenance", or "poweroff"
Response
Success
{ "success": true }
Error
| STATUS CODE | DESCRIPTION |
|---|---|
| 404 | when some of the hosts that correspond to the <hostId> can't be found |
| 400 | when JSON format is incorrect |
| 400 | when trying to update hosts status and exceeding the limit (30) |
| 403 | when the API key doesn't have the required permissions / when accessing from outside the permitted IP address range |
Update Host Roles
PUT
/api/v0/hosts/<hostId>/role-fullnames
Required permissions for the API key
- Write
Input
{ "roleFullnames": [ <string>, <string>, … ] }
roleFullnames is the same as roleFullnames object in Register Host Information.
Response
Success
{ "success": true }
Error
| STATUS CODE | DESCRIPTION |
|---|---|
| 404 | when the host that corresponds to the hostId can’t be found |
| 400 | when JSON format is incorrect |
| 400 | when the format of roleFullnames is incorrect |
| 403 | when the API key doesn't have the required permissions / when accessing from outside the permitted IP address range |
Retire Hosts
This will retire a registered host.
POST
/api/v0/hosts/<hostId>/retire
Required permissions for the API key
- Read
- Write
Input
This will POST empty JSON.
{}
Response
Success
{ "success": true }
Error
| STATUS CODE | DESCRIPTION |
|---|---|
| 404 | when the host that corresponds to the <hostId> can’t be found |
| 400 | when JSON format is incorrect |
| 403 | when the API key doesn't have the required permissions / when accessing from outside the permitted IP address range |
Bulk Retire Hosts
This will retire multiple registered hosts.
POST
/api/v0/hosts/bulk-retire
Required permissions for the API key
- Read
- Write
Input
You can specify <hostId> up to 30.
{ "ids": [ <hostId>, <hostId>, … ] }
Response
Success
{ "success": true }
Error
| STATUS CODE | DESCRIPTION |
|---|---|
| 404 | when some of the hosts that correspond to the <hostId> can't be found |
| 400 | when JSON format is incorrect |
| 400 | when trying to retire hosts and exceeding the limit (30) |
| 403 | when the API key doesn't have the required permissions / when accessing from outside the permitted IP address range |
list of hosts
GET
/api/v0/hosts
/api/v0/hosts.json returns the same contents with the same query parameters.
Required permissions for the API key
- Read
Input (Query parameter)
The following parameters can be used to filter hosts. If nothing has been assigned yet, all hosts will be returned.
| PARAM | TYPE | DESCRIPTION |
|---|---|---|
service |
string | [optional] service name |
role |
string | [optional] role names in the service, multiple assignments possible (result will be a unit of the hosts that belong to each role) if service has not been assigned it will be ignored. |
name |
string | [optional] host name |
status |
string | [optional] filters the host status. multiple specifications are possible. defaults are working and standby. |
customIdentifier |
string | [optional] an identifier for the host that is user-specific and unique to the organization (registered at Register Host Information or Update Host Information API) |
Response
{ "hosts": [ <host>, <host>, …] }
<host> is the same type as the object that changes in Get Host Information
List Metric Names
GET
/api/v0/hosts/<hostId>/metric-names
Required permissions for the API key
- Read
Response
Success
{ "names": [<metricName>, <metricName>, ...] }
| KEY | TYPE | DESCRIPTION |
|---|---|---|
names |
array[string] | The name of the metrics being posted in the Host. |
Error
| STATUS CODE | DESCRIPTION |
|---|---|
| 404 | when the Host corresponding to <hostId> can't be found |
List Monitoring Statuses
Retrieves the monitor associated with the host and its status (monitoring status). Supported for connectivity monitoring, metric monitoring, check monitoring, and anomaly detection for roles.
GET
/api/v0/hosts/<hostId>/monitored-statuses
Required permissions for the API key
- Read
Response
Success
{ "monitoredStatuses": [<monitoredStatus>, <monitoredStatus>, ...] }
<monitoredStatus> is an object that represents the monitoring status and holds the following keys:
| KEY | TYPE | DESCRIPTION |
|---|---|---|
monitorId |
string | monitor ID |
status |
string | alert status. either "OK", "CRITICAL", "WARNING", or "UNKNOWN" |
detail |
object | [optional] detailed information*6 |
*6 detail
Detailed information that accompanies the monitoring status. Currently only available for monitoring statuses of check monitoring.
| KEY | TYPE | DESCRIPTION |
|---|---|---|
type |
string | the type of detailed information. check monitoring is always check |
message |
string | auxiliary text such as command output results |
memo |
string | [optional] notes configured for check monitoring |
Error
| STATUS CODE | DESCRIPTION |
|---|---|
| 404 | when the host that corresponds to the specified ID can’t be found |