Cluster API

Get all cluster data

The /cluster/members API endpoint provides HTTP GET access to Sensu cluster data.

Example

The following example demonstrates a request to the /cluster/members API endpoint, resulting in a JSON map that contains a Sensu cluster definition.

curl -X GET \
http://127.0.0.1:8080/api/core/v2/cluster/members \
-H "Authorization: Bearer $SENSU_ACCESS_TOKEN" \

HTTP/1.1 200 OK
{
  "header": {
    "cluster_id": 4255616304056076734,
    "member_id": 9882886658148554927,
    "raft_term": 2
  },
  "members": [
    {
      "ID": 9882886658148554927,
      "name": "default",
      "peerURLs": [
        "http://127.0.0.1:2380"
      ],
      "clientURLs": [
        "http://127.0.0.1:2379"
      ]
    }
  ]
}

API Specification

/cluster/members (GET)
description Returns the etcd cluster definition.
example url http://hostname:8080/api/core/v2/cluster/members
query parameters timeout: Defines the timeout when querying etcd.
  • 5.19.0: Default is 0, which will cause the request to hang. To prevent this, upgrade to 5.19.1 or set to ?timeout=3 to match the sensuctl default.
  • 5.19.1: Default is 3.
response type Map
response codes
  • Success: 200 (OK)
  • Error: 500 (Internal Server Error)
example output
{
  "header": {
    "cluster_id": 4255616304056076734,
    "member_id": 9882886658148554927,
    "raft_term": 2
  },
  "members": [
    {
      "ID": 9882886658148554927,
      "name": "default",
      "peerURLs": [
        "http://127.0.0.1:2380"
      ],
      "clientURLs": [
        "http://127.0.0.1:2379"
      ]
    }
  ]
}

Create a new cluster member

The /cluster/members API endpoint provides HTTP POST access to create a Sensu cluster member.

Example

curl -X POST \
-H "Authorization: Bearer $SENSU_ACCESS_TOKEN" \
http://127.0.0.1:8080/api/core/v2/cluster/members?peer-addrs=http://127.0.0.1:2380

HTTP/1.1 200 OK
{
  "header": {
    "cluster_id": 4255616304056077000,
    "member_id": 9882886658148555000,
    "raft_term": 2
  },
  "members": [
    {
      "ID": 9882886658148555000,
      "name": "default",
      "peerURLs": [
        "http://127.0.0.1:2380"
      ],
      "clientURLs": [
        "http://localhost:2379"
      ]
    }
  ]
}

API Specification

/cluster/members/:member (POST)
description Creates a cluster member.
example url http://hostname:8080/api/core/v2/cluster/members?peer-addrs=http://127.0.0.1:2380
query parameters
  • Required: peer-addrs (a comma-delimited list of peer addresses).
response codes
  • Success: 200 (OK)
  • Missing: 404 (Not Found)
  • Error: 500 (Internal Server Error)

Create or update a cluster member

The /cluster/members/:member API endpoint provides HTTP PUT access to create or update a cluster member, by cluster member ID.

Example

curl -X PUT \
-H "Authorization: Bearer $SENSU_ACCESS_TOKEN" \
http://127.0.0.1:8080/api/core/v2/cluster/members/8927110dc66458af?peer-addrs=http://127.0.0.1:2380

HTTP/1.1 200 OK
{
  "header": {
    "cluster_id": 4255616304056077000,
    "member_id": 9882886658148555000,
    "raft_term": 2
  },
  "members": [
    {
      "ID": 9882886658148555000,
      "name": "default",
      "peerURLs": [
        "http://127.0.0.1:2380"
      ],
      "clientURLs": [
        "http://localhost:2379"
      ]
    }
  ]
}

API Specification

/cluster/members/:member (PUT)
description Creates or updates a cluster member.
example url http://hostname:8080/api/core/v2/cluster/members/8927110dc66458af?peer-addrs=http://127.0.0.1:2380
url parameters Required: 8927110dc66458af (hex-encoded uint64 cluster member ID generated using sensuctl cluster member-list).
query parameters Required: peer-addrs (a comma-delimited list of peer addresses).
response codes
  • Success: 200 (OK)
  • Missing: 404 (Not Found)
  • Error: 500 (Internal Server Error)

Delete a cluster member

The /cluster/members/:member API endpoint provides HTTP DELETE access to remove a Sensu cluster member.

Example

The following example shows a request to the /cluster/members/:member API endpoint to remove the Sensu cluster member with the ID 8927110dc66458af, resulting in a successful HTTP 204 No Content response.

curl -X DELETE \
-H "Authorization: Bearer $SENSU_ACCESS_TOKEN" \
http://127.0.0.1:8080/api/core/v2/namespaces/default/cluster/members/8927110dc66458af

HTTP/1.1 204 No Content

API Specification

/cluster/members/:member (DELETE)
description Removes a member from a Sensu cluster (specified by the member ID).
example url http://hostname:8080/api/core/v2/cluster/members/8927110dc66458af
url parameters
  • 8927110dc66458af (required): Required hex-encoded uint64 cluster member ID generated using sensuctl cluster member-list
response codes
  • Success: 204 (No Content)
  • Missing: 404 (Not Found)
  • Error: 500 (Internal Server Error)

Get a cluster ID

The /cluster/id API endpoint provides HTTP GET access to the Sensu cluster ID.

Example

The following example demonstrates a request to the /cluster/id API endpoint, resulting in a string that contains the Sensu cluster ID.

curl -X GET \
 -H "Authorization: Bearer $SENSU_ACCESS_TOKEN" \
http://127.0.0.1:8080/api/core/v2/cluster/id

HTTP/1.1 200 OK
"23481e76-5844-4d07-b714-6e2ffbbf9315"

API Specification

/cluster/id (GET)
description Returns the unique Sensu cluster ID.
example url http://hostname:8080/api/core/v2/cluster/id
query parameters timeout: Defines the timeout when querying etcd.
  • 5.19.0: Default is 0, which will cause the request to hang. To prevent this, upgrade to 5.19.1 or set to ?timeout=3 to match the sensuctl default.
  • 5.19.1: Default is 3.
response type String
response codes
  • Success: 200 (OK)
  • Error: 500 (Internal Server Error)
example output
"23481e76-5844-4d07-b714-6e2ffbbf9315"