v6 System Services¶
These services provide access to general system information.
v6 Get Scheduler Status¶
Example GET /v6/status/ API call
Request: GET http://.../v6/status/
Response: 200 OK
{
"timestamp": "1970-01-01T00:00:00Z",
"dependencies":{
"logs":{
"OK":true,
"detail": {
"msg": "Logs are healthy",
"logging_address": "tcp://localhost:1234",
"logging_health_address": "http://www.logging.com/health"
},
"errors": [],
"warnings": []
},
"msg_queue": {
"OK":true,
"detail":{
"msg": "Message Queue is healthy"
"num_message_handlers":0,
"type":"amqp",
"queue_name":"scale-command-messages",
"queue_depth":99,
"region_name":""
},
"errors":[],
"warnings":[]
},
"database":{
"OK":true,
"detail": {
"msg": "Database alive and well"
},
"errors":[],
"warnings":[]
},
"elasticsearch":{
"OK":true,
"detail":{
"url":"http://green.host",
"msg":"Elasticsearch is healthy",
"info":{
"tagline":"You know, for X"
}
},
"errors":[],
"warnings":[]
},
"nodes":{
"OK": true,
"detail": {
"msg": "Enough nodes are online to function."
}
"errors":[ {"NODES_OFFLINE":"No nodes reported."} ],
"warnings":[]
},
"idam":{
"OK":true,
"detail": {
"geoaxis_authorization_url": "https://geoaxis.gxaccess.com/ms_oauth/oauth2/endpoints/oauthservice/authorize",
"scale_vhost": "scale.io",
"geoaxis_enabled": true,
"backends": [
"django.contrib.auth.backends.ModelBackend",
"django_geoaxis.backends.geoaxis.GeoAxisOAuth2"
],
"msg": "Geoaxis is enabled",
"geoaxis_host": "geoaxis.gxaccess.com"
},
"errors":[],
"warnings":[]
},
"silo":{
"OK":true,
"detail":{
"url":"https://en.wikipedia.org/wiki/Silo",
"msg":"Silo is alive and connected"
},
"errors":[],
"warnings":[]
}
},
"scheduler": {
"metrics": {
"task_updates_per_sec": 0.0,
"new_offers_per_sec": 0.0,
"jobs_finished_per_sec": 0.0,
"jobs_launched_per_sec": 0.0,
"tasks_launched_per_sec": 0.0,
"offers_launched_per_sec": 0.0,
"tasks_finished_per_sec": 0.0
},
"hostname": "scheduler-host.com",
"mesos": {
"framework_id": "framework-1234",
},
"state": {
"name": "READY",
"title": "Ready",
"description": "Scheduler is ready to run new jobs."
},
"warnings": {[]
}
},
"system": {
"database_update": {
"is_completed": true,
"completed": "1970-01-01T00:00:00Z"
},
"services": [
{
"name": "messaging",
"title": "Messaging",
"description": "Processes the backend messaging system",
"actual_count": 1,
"desired_count": 1
}
]
},
"vault": {
"status": "Secrets Improperly Configured",
"sealed": false,
"message": "A secrets backend is not properly configured with Scale."
},
"num_offers": 4,
"resources": {
"mem": {
"offered": 91445.0,
"total": 177501.0,
"running": 1024.0,
"free": 72744.0,
"unavailable": 12288.0
},
"gpus": {
"offered": 0.0,
"total": 0.0,
"running": 0.0,
"free": 0.0,
"unavailable": 0.0
},
"disk": {
"offered": 383051.0,
"total": 676101.0,
"running": 0.0,
"free": 289722.0,
"unavailable": 3328.0
},
"cpus": {
"offered": 7.3,
"total": 28.0,
"running": 1.0,
"free": 11.0,
"unavailable": 8.7
}
},
"job_types": [
{
"id": 1,
"name": "my-job",
"version": "1.0",
"title": "My Job",
"description": "My Job Description",
"is_system": false,
"icon_code": "f186"
}
],
"nodes": [
{
"id": 1,
"hostname": "my-host",
"agent_id": "my-agent",
"is_active": true,
"state": {
"name": "READY",
"title": "Ready",
"description": "Node is ready to run new jobs."
},
"errors": [
{
"name": "my-error",
"title": "My Error",
"description": "My Error Description",
"started": "1970-01-01T00:00:00Z",
"last_updated": "1970-01-01T00:00:00Z"
}
],
"warnings": [
{
"name": "my-warning",
"title": "My Warning",
"description": "My Warning Description",
"started": "1970-01-01T00:00:00Z",
"last_updated": "1970-01-01T00:00:00Z"
}
],
"node_tasks": [
{
"type": "cleanup",
"title": "Node Cleanup",
"description": "Performs Docker container and volume cleanup on the node",
"count": 1
}
],
"system_tasks": [
{
"type": "message-handler",
"title": "Message Handler",
"description": "Processes messages from Scale's backend messaging system",
"count": 1
}
],
"num_offers": 1,
"resources": {
"mem": {
"offered": 26893.0,
"total": 29965.0,
"running": 0.0,
"free": 0.0,
"unavailable": 3072.0
},
"gpus": {
"offered": 0.0,
"total": 0.0,
"running": 0.0,
"free": 0.0,
"unavailable": 0.0
},
"disk": {
"offered": 95553.0,
"total": 96577.0,
"running": 0.0,
"free": 0.0,
"unavailable": 1024.0
},
"cpus": {
"offered": 1.0,
"total": 4.0,
"running": 0.0,
"free": 0.0,
"unavailable": 3.0
}
},
"job_executions": {
"running": {
"total": 3,
"by_job_type": [
{
"job_type_id": 1,
"count": 3
}
]
},
"completed": {
"total": 3,
"by_job_type": [
{
"job_type_id": 1,
"count": 3
}
]
},
"failed": {
"total": 9,
"data": {
"total": 3,
"by_job_type": [
{
"job_type_id": 1,
"count": 3
}
]
},
"algorithm": {
"total": 3,
"by_job_type": [
{
"job_type_id": 1,
"count": 3
}
]
},
"system": {
"total": 3,
"by_job_type": [
{
"job_type_id": 1,
"count": 3
}
]
}
}
}
}
]
}
Get Scheduler Status | ||
---|---|---|
Returns the current status of the scheduler, including information about nodes and running jobs. | ||
GET /v6/status/ | ||
Successful Responses | ||
Status | 503 SERVICE UNAVAILABLE | |
The 503 SERVICE UNAVAILABLE response indicates that the Scale scheduler is either currently offline, so there is no status provide, or that something is causing the scheduler status update to be slow and the status is stale. | ||
Status | 200 OK | |
Content Type | application/json | |
JSON Fields | ||
timestamp | ISO-8601 Datetime | When the status information was generated |
dependencies | JSON Object | Status of Scale’s dependencies |
dependencies.logs | JSON Object | Status of the logging service used by Scale |
dependencies.msg_queue | JSON Object | Status of Scale’s message queue |
dependencies.database | JSON Object | Status of Scale’s database |
dependencies.elasticsearch | JSON Object | Status of configured elasticsearch service |
dependencies.nodes | JSON Object | Status of nodes in Scale. Warns if too many are offline/degraded |
dependencies.idam | JSON Object | Status of IdAM service (GEOAxIS) |
dependencies.silo | JSON Object | Status of Silo service used for discovering and importing Seed images |
scheduler | JSON Object | Scheduler configuration and metrics information |
scheduler.metrics | JSON Object | Contains various near real-time metrics related to scheudling tasks and jobs |
scheduler.mesos | JSON Object | Contains Scale’s framework ID and hostname and port of the Mesos master |
scheduler.state | JSON Object | The current scheduler state, with a title and description |
scheduler.warnings | Array | List of scheduler warning objects, with a title, description, and when the warning began and was last updated |
system | JSON Object | System information |
system.database_update | JSON Object | Information on if and when the current Scale database update completed |
system.services | Array | List of services, with name, title, description, and task counts |
vault | JSON Object | Secrets Vault information |
vault.status | String | The status of the secrets vault |
vault.sealed | Boolean | Whether the secrets vault is currently sealed |
vault.message | String | Description of error reading the secrets vault, if any |
num_offers | Integer | Number of resource offers currently held by Scale |
resources | JSON Object | Describes the resource totals across all of Scale’s nodes. Each resource name is a key and its corresponding object breaks down the resource into several categories: running resources are used by current Scale tasks, offered resources are currently offered to Scale, free resources are available on the node and may be offered to Scale soon, unavailable resources are used by other tasks and cannot be used by Scale, and total resources are the total amounts for the node. |
job_types | Array | List of job type objects, with a few basic fields |
nodes | Array | List of node objects, with a few basic fields including the current node state |
nodes.state | JSON Object | The current node state, with a title and description |
nodes.errors | Array | List of node error objects, with a title, description, and when the error began and was last updated |
nodes.warnings | Array | List of node warning objects, with a title, description, and when the warning began and was last updated |
nodes.node_tasks | Array | List of node tasks running on the node, with a type, title, description, and count |
nodes.system_tasks | Array | List of system tasks running on the node, with a type, title, description, and count |
nodes.job_executions | JSON Object | The job executions related to this node. The running field describes the jobs currently running on the node, with a total count and count per job type. The completed field describes job executions that have completed on the node in the last 3 hours, with a total count and count per job type. The failed field is similar to completed, just with failed executions grouped by error category. |
v6 Get System Version¶
Example GET /v6/version/ API call
Request: GET http://.../v6/version/
Response: 200 OK
{
"version": "6.0.0"
}
Get System Version | ||
---|---|---|
Returns version and build information. | ||
GET /v6/version/ | ||
Successful Response | ||
Status | 200 OK | |
Content Type | application/json | |
JSON Fields | ||
version | String | The full version identifier of Scale. The format follows the Semantic scheme: http://semver.org/ |