MindSphere Managed Backing Services¶
This section gives an overview of the included Backing Services. Each instance of a Backing Service runs on a dedicated virtual machine. These virtual machines and services are operated by MindSphere.
Available Backing Services¶
The following Backing Services are currently included and available as subscription and Pay-per-Use version:
Backing Service | Description | Plan |
---|---|---|
PostgreSQL | PostgreSQL is a powerful, open source object-relational database system. | postgresql-s10 postgresql-m50 postgresql-s10_ha postgresql-m postgresql-m150_ha |
Redis | Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. | redis-s10 redis-m50 redis-s10_ha redis-m redis-m150_ha |
RabbitMQ | RabbitMQ is the most widely deployed open source message broker. | rabbitmq-s10 rabbitmq-m50 rabbitmq-s10_ha rabbitmq-m rabbitmq-m150_ha |
Elasticsearch | Elasticsearch is a distributed, RESTful search and analytics engine capable of solving a growing number of use cases. As the heart of the Elastic Stack, it centrally stores your data so you can discover the expected and uncover the unexpected. | elasticsearch-s10 elasticsearch-m50 elasticsearch-s10_ha elasticsearch-m elasticsearch-m150_ha |
LogMe | LogMe allows to provision Elasticsearch, Logstash and Kibana, i.e. the ELK-stack. Simply bind your Cloud Foundry app to LogMe and it will automatically start collecting metrics and syslogs from your apps and services. | logme-s10 logme-m50 logme-s10_ha logme-m logme-m150_ha |
Service Plans¶
All service plans (*-xs
, *-s10
, *-m50
, *-s10_ha
, *-m
and *-m150_ha
) are enabled for every Org. Those plans are all marked as paid plans as you can buy additional instances of those. Depending on your offering a certain amount of concurrent instances is included. The following table lists those for the MindAccess Developer Plan:
Offering | Concurrent instances included |
---|---|
Developer Plan S | 2 XS instances |
Developer Plan M | 4 XS instances |
Developer Plan L | 6 XS instances |
You can buy additional service instances in different sizes via the MindSphere Store. Therefore, the Cloud Foundry quota of your Org does not reflect allowed number of concurrent service instances.
Update to a larger Service Plan¶
Upgrade the service plan using the following command:
1 | cf update-service <serviceName> -p <largerPlanName> |
Note
Refer to Upgrade the Service Instance to another Service Plan chapter of individual Backing Service description to see the update possibilities.
* Elasticsearch
* LogMe
* PostgreSQL
* RabbitMQ
* Redis
Disk Alerts¶
Every service instance is monitored by a Parachute component to evaluate the ephemeral and persistent disk usage. If a disk usage reaches the configured threshold Parachute stops all of this instance's processes and writes a message into the log directory:
Limit reached for: <persistent/ephemeral> disk
Note
The disk sizes in the specification tables show the total virtual disk size. Some parts of the disk are not usable for data. These parts are for example: disk partition losses, root reservations, WAL files for PostgreSQL replication.
By default, the Parachute threshold is set to 80%.
With this combined, for example a PostgreSQL service plan size m instance with 50 GB disk can use about 35 GB for your data before it becomes stopped by Parachute component.
Restart Stopped Instances¶
The disk usage threshold for service instances is set to 80% by default. When restarting a stopped service instance, the threshold can be configured using the max_disk_threshold
parameter. It accepts integer values between 0 and 100. The following sample shows how to restart a service instance with a threshold of 90%:
1 | cf update-service <serviceName> -c '{"max_disk_threshold": "90"}' |
Restarting the service instance takes a few minutes.
Attention
This is only a temporary solution. The service instance is stopped when the threshold is reached again. For a long-term solution, the service instance must be updated to a larger plan size if available.
Sharing Service Instances¶
Sharing a service instance between spaces allows apps in different spaces to use the same instance of a MindSphere managed backing service. This eliminates the need to use service keys and user-provided services to bind apps to the same service instance.
Refer to the Cloud Foundry documentation about sharing instances for further details.
Features¶
- Service instances can be shared among multiple spaces within one Cloud Foundry org.
- Sharing service instances among spaces requires the Space Developer role in these spaces.
- Service instances can be bound or unbound in spaces it is shared with, but cannot updated, renamed or deleted.
- Configuration parameters used for provisioning or updating the service instance can be read from all spaces the instance is shared with.
- Sharing a service instance to another space does not decrease the remaining service count quota of your org.
- Shared service instances only count as one instance in the service count quota of your org.
Example scenario¶
Consider two development teams who deployed apps in their own spaces. Their apps shall communicate using a messaging queue.
- The development team in space A creates a RabbitMQ service instance, binds it to their app, and shares the service instance with space B.
- The development team in space B binds their app to the same service instance and the apps can begin to communicate.
Refer to the How Tos for instructions.
Restart or Recreate the Service Instance¶
To restart
or recrate
a running service instance, use the related buttons in the lower left corner of the service dashboard.
Info
The restart
button will trigger a shutdown/turn-on actions on all processes of the current instance.
The recreate
button will remove and recreate the current instance and its related processes.
Instance Metrics¶
The Service Dashboard also offers a visualization of the following metrics from your Service Instance, per node:
This allows you to know at a glance your current consumption of resources. For a single instance, the metrics are displayed as shown in the image below:
For a cluster instance, the metrics are displayed in separate tabs, one per node, as shown in the image below:
Info
The order of the tabs is dynamic, which means that there is no special order of the tabs.
Size Calculation¶
The metrics collector gathers and shares the Service Instance's metrics in bytes. To make the values human readable, the values are converted to megabytes by dividing the bytes by 1024^2. This means, the value shown in the dashboard might differ from other tools which take the approach to divide by 1000^2.
The data are displayed in a used/available
format.
Disks¶
The a9s Service Dashboard displays the following disks:
system
: contains the operating system itselfephemeral
: mainly used for automation/infrastructure data and log datapersistent
: mainly used for persistent data of the underlying data service
Other temporary disks are shown in disks metrics of Service Dashboard API.
Backing Service API¶
All backing services (except LogMe) provide an API for their service dashboard. With this API you can:
- Get backing service instance metrics
- List backups and restores, create backups, download backups and restore backups
Accessing the API¶
For Authentication and Authorization, you can use your WebKey user or create CloudFoundry Service Credentials in MindSphere and use this user.
Note
Your user needs SpaceDeveloper role for the space where your service is located.
Get bearer token with CF CLI¶
Authentication:
The following description shows how to get the bearer token for CloudFoundry Service Credentials created in MindSphere, using the CF CLI.
1 2 3 4 | cf api https://api.cf.eu1.mindsphere.io cf auth ${service_credentials_user} ${service_credentials_password} oauth_token=$(cf oauth-token) bearer_token=$(echo ${oauth_token} | grep bearer) |
Get bearer token using curl¶
Authentication:
The following description shows how to get the bearer token for CloudFoundry Service Credentials created in MindSphere, using curl.
1 2 | login_res=$(curl -XPOST -H "Application/json" -u "cf:" --data "username=${service_credentials_user}&password=${service_credentials_password}&client_id=cf&grant_type=password&response_type=token" https://login.cf.eu1.mindsphere.io/oauth/token) bearer_token="bearer $(echo ${login_res} | jq '.access_token' | tr -d \")" |
Using the API¶
For using the API, you need the service dashboard URL. Get the dashboard URL with cf service {instance_name}
, e.g.:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | $cf service my-postgresql Service instance: my-postgresql Service: postgresql Bound apps: Tags: Plan: postgresql-xs Description: This is a service creating and managing dedicated PostgreSQL service instances and clusters, powered by the anynines Service Framework Documentation url: Dashboard: https://a9s-postgresql-dashboard.cf.eu1.mindsphere.io/service-instances/b02f4682-b4ba-4f04-9f25-0d24e09d8f0c/ Last Operation Status: update succeeded Message: Started: 2017-10-26T08:28:38Z Updated: 2017-10-26T08:28:38Z |
For getting the Metrics API, you have to replace the part service-instances
in the dashboard URL with v1/instances
.
Example:
For dashboard URL
https://a9s-postgresql-dashboard.cf.eu1.mindsphere.io/service-instances/b02f4682-b4ba-4f04-9f25-0d24e09d8f0c/
(in following documentation named as dashboard_url
)
the according Metrics API is
https://a9s-postgresql-dashboard.cf.eu1.mindsphere.io/v1/instances/b02f4682-b4ba-4f04-9f25-0d24e09d8f0c/
(in following documentation named as metrics_api
).
Authorization:
For authorization, you need to execute the following request:
1 | curl --cookie test.cookie --cookie-jar test.cookie --location --insecure --header "Authorization: ${bearer_token}" "${dashboard_url}" |
Metrics API¶
Displays the metrics of your Service Instance.
1 | curl --cookie test.cookie --cookie-jar test.cookie --location --insecure --header "Authorization: ${bearer_token}" "${metrics_api}/metrics?quantity=1" |
Info
quantity
defines the number of latest elements to be returned. If not set, all elements will be returned. Quantity must be greater than or equal to 1.
Response¶
The response is a JSON that contains a collection of metrics datapoints. These datapoints are strings in Graphite format: <path> <value> <timestamp>
.
- path: The metric namespace. The string is made of independent
parts separated by dots (
.
):<namespace>.<type>.<specific>
- namespace: The component under observation.
The namespace is separated by dots (.
) as well:<org-guid>.<space-guid>.<instance-guid>.<internal-instance-name>.<internal-service-name>.<node>
Namespace examples:- 38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.7189a3e2-a0fb-4233-8c0d-d1ba3e6b970b.lod50f556.logme-es.0
- 38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.2
- type: Currently the suported DataPoint type is
system
- specific: The kind of data point. See below for more information.
- value: The number that is assigned to the metric at this time
- timestamp: The number of seconds elapsed since the Unix epoch
Load¶
Name | Description |
---|---|
load.error | 0 if the load average metrics could be fetched, 1 otherwise |
load.load1 | represents the average system load during the last one-minute period of time; multiplied by 1000000 |
load.load5 | represents the average system load during the last five-minute period of time; multiplied by 1000000 |
load.load15 | represents the average system load during the last fifteen-minute period of time; multiplied by 1000000 |
CPUs¶
The CPU number starts with 0.
Name | Description |
---|---|
cpu.error | 0 if the CPU stats could be fetched, 1 otherwise |
cpu<number>.user | the amount of time in milliseconds the CPU was busy running non-kernel code (user time, including nice time) |
cpu<number>.system | the amount of time in milliseconds the CPU was busy running kernel code |
cpu<number>.idle | the amount of time in milliseconds the CPU was not busy, or, otherwise, the amount of time in milliseconds it executed the kernel idle handler |
Memory¶
Name | Description |
---|---|
memory.error | 0 if the memory stats could be fetched, 1 otherwise |
memory.total | the maximum available amount of memory in bytes |
memory.used | the amount of memory in bytes currently being used |
memory.free | the amount of memory in bytes not currently in use by any running process |
memory.shared | the amount of memory in bytes used by the tmpfs file system and also the shared memory |
memory.buffers | the amount of memory in bytes used as buffers |
memory.cached | the amount of memory in bytes used as cache |
Swap¶
Name | Description |
---|---|
swap.error | 0 if the swap stats could be fetched, 1 otherwise |
swap.total | the maximum available amount of swap space in bytes |
swap.used | the amount of swap space in bytes currently being used |
swap.free | the amount of swap space in bytes not currently in use by any running process |
Disks¶
Only physical devices with a size greater than 0 are monitored.
Name | Description |
---|---|
disk.error | 0 if the available disks stats could be fetched, 1 otherwise |
disk.<name>.error | 0 if the disk stats could be fetched, 1 otherwise |
disk.<name>.total | the maximum available amount of disk space in bytes |
disk.<name>.used | the amount of disk space in bytes currently being used |
disk.<name>.free | the amount of disk space in bytes not currently in use |
The mount point of the device is used as name
. The first /
of the mount point is removed and all other /
are replaced by _
. The following mount points have special names:
Mount Point | Name |
---|---|
/ |
system |
/var/vcap/data |
ephemeral |
/var/vcap/store |
persistent |
Body¶
For success responses, the body contains the collection of metrics datapoints which can be piped to a file.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | [ "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.load.error 0 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.load.load1 360000 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.load.load5 290000 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.load.load15 120000 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.cpu.error 0 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.cpu0.user 8150 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.cpu0.system 12970 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.cpu0.idle 120660 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.cpu1.user 8270 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.cpu1.system 9780 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.cpu1.idle 121010 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.memory.error 0 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.memory.total 481349632 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.memory.used 117506048 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.memory.free 12460032 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.memory.shared 26669056 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.memory.buffers 20025344 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.memory.cached 331358208 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.swap.error 0 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.swap.total 481292288 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.swap.used 262144 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.swap.free 481030144 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.disk.error 0 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.disk.system.error 0 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.disk.system.total 3103686656 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.disk.system.used 1545281536 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.disk.system.free 1382715392 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.disk.ephemeral.error 0 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.disk.ephemeral.total 9958883328 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.disk.ephemeral.used 946991104 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.disk.ephemeral.free 8482414592 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.disk.var_log.error 0 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.disk.var_log.total 9958883328 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.disk.var_log.used 946991104 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.disk.var_log.free 8482414592 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.disk.tmp.error 0 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.disk.tmp.total 9958883328 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.disk.tmp.used 946991104 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.disk.tmp.free 8482414592 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.disk.var_tmp.error 0 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.disk.var_tmp.total 9958883328 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.disk.var_tmp.used 946991104 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.disk.var_tmp.free 8482414592 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.disk.home.error 0 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.disk.home.total 3103686656 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.disk.home.used 1545281536 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.disk.home.free 1382715392 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.disk.persistent.error 0 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.disk.persistent.total 3101442048 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.disk.persistent.used 52965376 1614161502", "38d7d572-8101-4d8b-b8a2-4e8c4f6b7022.b3613b75-130b-4e78-a7d2-275cd7382411.4a9c81a1-838f-4f41-b094-2869c6a586b8.pod143bb5.pg.0.system.disk.persistent.free 2870743040 1614161502" ] |
For error responses, the following fields are defined:
Response Field | Type | Description |
---|---|---|
error | string | A single word in camel case that uniquely identifies the error condition. |
description | string | A user-facing error message explaining why the request failed. |
Status¶
Status Code | Description |
---|---|
200 OK | The metrics were succesfully fetched. |
401 Unauthorized | The user does not have valid authentication credentials for the target resource |
404 Not Found | Entity not found. |
500 Internal Server Error | An unexpected error occured while handling the request. |
502 Bad Gateway | An error occured during upstream communication. |
504 Gateway Timeout | A timeout occured during upstream communication. |
Backups API - List Backups and Restores¶
Lists all available backups and restores that have been applied.
1 | curl --cookie test.cookie --cookie-jar test.cookie --location --insecure --header "Authorization: ${bearer_token}" "${dashboard_url}/backups" |
Response¶
Note
The response description contains only the relevant fields.
Status Code | Description |
---|---|
200 OK | If the request has been processed successfully. The response body is below. |
Body¶
For success responses, the following fields are defined:
Response Field | Type | Description |
---|---|---|
instance_id | string | The internal ID of the service instance. This ID is needed for restoring a backup. |
backups | array of Backup Objects | Schema of backup objects defined below. The array may be empty. |
restores | array of Restore Objects | Schema of restore objects defined below. The array may be empty. |
Backup Object¶
Response Field | Type | Description |
---|---|---|
id | integer | The internal ID of the backup. This ID is needed for restoring a backup. |
backup_agent_task | Backup Agent Task object | Schema of backup agent task object defined below. |
Restore Object¶
Response Field | Type | Description |
---|---|---|
backup_agent_tasks | array of Backup Agent Task objects | Schema of backup agent task objects defined below. |
Backup Agent Task Object¶
Response Field | Type | Description |
---|---|---|
status | string | The status of the task. The following stati exist: queued , running , done , failed , deleted . |
created_at | datetime | The date the task was created. |
updated_at | datetime | The date on which the status of the task was last changed. |
Backups API - Create Backup¶
Trigger the creation of a backup of the service instance.
1 | curl --cookie test.cookie --cookie-jar test.cookie --location --insecure --header "Authorization: ${bearer_token}" -X POST "${dashboard_url}/backups" |
Response¶
Status Code | Description |
---|---|
201 Created | If the backup has been scheduled. |
Body¶
For success responses, the following fields are defined:
Response Field | Type | Description |
---|---|---|
id | integer | The ID of the backup. |
message | string | Backup creation status message. |
Backups API - Restore Backup¶
Trigger the restore of a backup of the service instance.
Request Body | Type | Description |
---|---|---|
instance_id | integer | The internal ID of the service instance. |
backup_id | integer | The internal ID of the backup. |
You can get the IDs by listing all Backups and Restores.
1 | curl --cookie test.cookie --cookie-jar test.cookie --location --insecure --header "Authorization: ${bearer_token}" -X POST "${dashboard_url}/backups/restore" --data "instance_id=${instance_id}" --data "backup_id=${backup_id}" |
Response¶
Status Code | Description |
---|---|
200 OK | If the restore has been scheduled. |
412 Precondition Failed | Either instance_id or backup_id does not exist or match. |
Body¶
For success responses, the following fields are defined:
Response Field | Type | Description |
---|---|---|
restore_id | integer | The internal ID of the restore. |
For error responses, the following fields are defined:
Response Field | Type | Description |
---|---|---|
msg | string | Restore failure message. |
Backups API - Download Backup¶
Downloads the given backup of a given Service Instance
1 | curl --cookie test.cookie --cookie-jar test.cookie --location --insecure --header "Authorization: ${bearer_token}" "${dashboard_url}/backups/${backup_id}/download" |
Response¶
Status Code | Description |
---|---|
200 OK | If the backup download is started |
412 Precondition Failed | Either instance_id or backup_id does not exist or match. |
Body¶
For success responses, the body contains the encrypted and compressed backup. The response should be piped into a file.
How to decrypt and decompress the backup is described here.
For error responses, the following fields are defined:
Response Field | Type | Description |
---|---|---|
msg | string | Download failure message |
Backing Service Documentation¶
Any questions left?
Except where otherwise noted, content on this site is licensed under the MindSphere Development License Agreement.