Submit Benchmark

Details

API Details
NameSubmit Benchmark (Asynchronous API)
Description

Submit a benchmark job that deploys an application profile across multiple cloud providers or cloud regions from a single cloud provider and produces a report that helps customers optimize cost and performance.

MethodPOST
URI

v2/benchmark 

CloudCenter ReleaseIntroduced in CloudCenter 4.6
Notes
  • General Notes:
  • API Notes:
    • The v2 version of this API requires job objects for each cloud combination.

    • To identify the child, load generator tier – provide the "benchmarkLoadGenerator": "true" setting in the request body.

    • Provide the appId and appVersion at the benchmark level instead of specifying this information in each job request as these values apply to various jobs.

    • You do not need to provide the name, appId, and appVersion attributes within the benchmarkJobs settings.

ESB Header

action: create.benchmark 

Example 1 – Governance Mode OFF

curl -k -X POST -H "Accept: application/json" -u cloudcenteradmin:40E45DBE57E35ECB "https://<HOST>:<PORT>/v2/benchmark "

Request Body: N-Tier – OpenStack

 Click here to expand...
{
    "benchmarkName": "my_benchmark_1",
    "benchmarkDesc": "my benchmark desc",
    "appId": "42",
    "appVersion": "2.0",
    "benchmarkSettings": {
        "benchmarkURL": "",
        "requests": 100,
        "repeats": 5,
        "delay": 10
    },
    "benchmarkJobs": [{
        "environmentId": 1,
        "parameters": {
            "cloudParams": {
                "cloudRegionId": 1,
                "instance": "1da5bcf0-0c52-476e-b841-394eea73a903",
                "cloudProperties": [{
                    "name": "TenantId",
                    "value": "xyz"
                }]
            }
        },
        "jobs": [{
            "tierId": "43",
            "parameters": {
                "appParams": [],
                "cloudParams": {
                    "nics": [{
                        "id": "27f911c8-1878-4672-aa7c-821d4b278dee",
                        "allocationMode": "DHCP",
                        "allocatePublicIp": true,
                        "order": 1
                    }]
                }
            }
        }, {
            "benchmarkLoadGenerator": "true",
            "parameters": {
                "cloudParams": {
                    "nics": [{
                        "id": "27f911c8-1878-4672-aa7c-821d4b278dee",
                        "allocationMode": "DHCP",
                        "allocatePublicIp": true,
                        "order": 1
                    }]
                }
            }
        }]
    }]
}

Example 2 – Governance Mode OFF

curl -k -X POST -H "Accept: application/json" -u cloudcenteradmin:40E45DBE57E35ECB "https://<HOST>:<PORT>/v2/benchmark "

Request Body: N-Tier – AWS

 Click here to expand...
{
    "benchmarkName": "my_benchmark_2",
    "benchmarkDesc": "my benchmark desc",
    "appId": "56",
    "appVersion": "1.0",
    "benchmarkJobs": [{
        "environmentId": 1,
        "jobs": [{
            "tierId": "59",
            "parameters": {
                "appParams": [],
                "cloudParams": {
                    "cloudRegionId": 2,
                    "instance": "m1.small",
                    "cloudProperties": [{
                        "name": "vpcId",
                        "value": "vpc-35c58650"
                    }],
                    "nics": [{
                        "id": "subnet-0606795f",
                        "allocationMode": "DHCP",
                        "allocatePublicIp": true,
                        "order": 1
                    }]
                }
            }
        }, {
            "benchmarkLoadGenerator": "true",
            "parameters": {
                "appParams": [],
                "cloudParams": {
                    "cloudRegionId": 2,
                    "instance": "m1.small",
                    "cloudProperties": [{
                        "name": "vpcId",
                        "value": "vpc-35c58650"
                    }],
                    "nics": [{
                        "id": "subnet-0606795f",
                        "allocationMode": "DHCP",
                        "allocatePublicIp": true,
                        "order": 1
                    }]
                }
            }
        }]
    }]
}

Example 3 –  Governance Mode ON

curl -k -X POST -H "Accept: application/json" -u cloudcenteradmin:40E45DBE57E35ECB "https://<HOST>:<PORT>/v2/benchmark 

Request Body: N-Tier – AWS

 Click here to expand...
{
    "benchmarkName": "my_benchmark_2",
    "benchmarkDesc": "my benchmark desc",
    "appId": "56",
    "appVersion": "1.0",
    "benchmarkJobs": [{
        "tagIds": [1],
        "jobs": [{
            "tierId": "59",
            "tagIds": [2, 3],
            "parameters": {
                "appParams": [],
                "cloudParams": {
                    "cloudRegionId": 2,
                    "instance": "m1.small",
                    "cloudProperties": [{
                        "name": "vpcId",
                        "value": "vpc-35c58650"
                    }],
                    "nics": [{
                        "id": "subnet-0606795f",
                        "allocationMode": "DHCP",
                        "allocatePublicIp": true,
                        "order": 1
                    }]
                }
            }
        }, {
            "benchmarkLoadGenerator": "true",
            "parameters": {
                "appParams": [],
                "cloudParams": {
                    "cloudRegionId": 2,
                    "instance": "m1.small",
                    "cloudProperties": [{
                        "name": "vpcId",
                        "value": "vpc-35c58650"
                    }],
                    "nics": [{
                        "id": "subnet-0606795f",
                        "allocationMode": "DHCP",
                        "allocatePublicIp": true,
                        "order": 1
                    }]
                }
            }
        }]
    }]
}

 Request Attributes

benchmarkName
  • Description: The name of the benchmark.
  • Type: String
benchmarkDesc
  • DescriptionA brief description for this benchmark.
  • Type: String
appId
  • Description: Unique, system-generated identifier for the application profile. You can provide multiple application profile IDs as input parameters.

  • Type: String
appVersion
  • Description: The application build version with which a new job is started. If the appVersion is not specified, the latest application build version is used.

  • Type: String

benchmarkSettings

 Click here to expand...

benchmarkSettings
  • Description: Identifies multiple benchmark settings, if configured.

    If you benchmark uses custom test plans, you have the following formatting options to identify the benchmark settings

    • Format Option 1

      "benchmarkSettings": {
          "testPlan": {
              "repositoryId": 1,
              "testPlanPath": "testPlan.jmx"
          }
      }
    • Format Option 2

      "benchmarkSettings": {
          "testPlan": {
              "testPlanPath": "http://<HOST>:<PORT>/kap/testPlan.jmx"
          }
      }
  • Type: Sequence of benchmark details

     benchmarkURL 
    • Description: The URL that is associated with the benchmark.
    • Type: String
    requests
    • Description: Identifies the number of successful benchmark requests per second.
    • Type: Long
    repeats
    • Description: Identifies the number of times to repeat requests in JMeter.
    • Type: Long
    delay
    • Description: Identifies the delay (in seconds) whrn starting all the JMeter requests. For example, if you enter a delay of 5 seconds, JMeter will finish starting all of the requests by the end of the 5 seconds. So, if you have 5 requests and a 5-second delay, then the delay between starting users is 1 second (5 users / 5 seconds = 1 user per second). If you set the value to 0, then JMeter will immediately start all your requests.
    • Type: Long

benchmarkJobs

 Click here to expand...

You do not need to provide the name, appId, and appVersion attributes within the benchmarkJobs settings. Even if you provide these settings, they are ignored as the name is auto-generated and the appId and appVersion are retrieved from the top-level benchmark settings.

environmentId
  • Description: Unique, system-generated identifier for the deployment environment. See Deployment Environments for additional details. This attribute is the same as the depEnvId attribute.
  • Type: String

parameters
  • Description: Information about the types of parameters used to start this job.
  • Type: Sequence of parameter types

    cloudParams
    • Description: Cloud specific job parameters (not required for SaaS deployments) – information about the cloud where new job is started
    • Type: Object

      cloud
      • Description: The user-assigned name for the cloud region where the new job is started.
      • Type: String
      instance
      • Description: The name of the cloud Instance type that is used to start the new job. See Manage Instance Types for additional context.
      • Type: String

      storage
      • Description: Identifies storage-related cloud information
      • Type: Array of mapped attributes

        regionId
        • DescriptionUnique, system-generated identifier for the cloud region 
        • Type: String
        cloudAccountId
        • Description: Unique, system-generated identifier for the cloudAccount
        • Type: String
        size
        • Description: Total number of records that any list page should contain. The default is: 

          • v1 APIs = 20 records

          • v2 APIs:

            • Prior to 4.8.0: All elements are returned and the page value is ignored.

            • Effective 4.8.0: 50 records
        • Type: Integer
        numNodes
        • DescriptionThe number of nodes in this storage configuration
        • Type: Integer
        cloudSpecificSettings
        • Description: Settings for this cloud provider
        • Type: Name-Value Pair (array)
        address
        • Description: The DNS name or the IP address of the resource VM (for example, CCO, storage)
        • Type: String

      rootVolumeSize
      • Description: Root volume size (in GB) if you need to expand root disk when you launch a VM. The size must be bigger than the size defined by the instance type. This is required for OpenStack, but optional for AWS.

        Optional for AWS

        To provide a larger size for root volume for an AWS deployment, use the newer generation of CloudCenter instance types. The older generation of instance types like the t1, m1 series do not support the resizing of root volume. To use the older generation of instance types, configure the root volume size as 0. This configuration, by default, uses the AMI's  root volume size. See Multiple Volumes for additional context.

      • Type: String
      cloudProperties
      • Description: Information about the cloud region configuration. See Application Deployment for a use case.
      • Type: Array of name-value pairs

        name
        • DescriptionThe name assigned for this CloudCenter ResourceValid characters are letters, numbers, underscores, and spaces.

        • Type: String

        value
        • Description: Indicates the set value for this property
        • Type: Float

      • Availability Set Examples: If using CloudCenter 4.5.6 or later, see Availability Sets and Zones for a feature explanation or the following cloud-specific attributes:
    appParams
    • Description: Information about the application property
    • Type: Array of name-value pairs

      name
      • DescriptionThe name assigned for this CloudCenter ResourceValid characters are letters, numbers, underscores, and spaces.

      • Type: String

      value
      • Description: Indicates the set value for this property
      • Type: Float

    envParams
    • Description: Information about the application property
    • Type: Array of name-value pairs

      name
      • DescriptionThe name assigned for this CloudCenter ResourceValid characters are letters, numbers, underscores, and spaces.

      • Type: String

      value
      • Description: Indicates the set value for this property
      • Type: Float

jobs(v2)

 Click here to expand...
tierId
  • Description: Unique, system-generated identifier for the tier. 
    • If used as a request parameter, pass the Tier ID based on the context.
    • For multi-tier applications (Web Apps), provide a list of child jobs where each child job represents a service tier. The child job structure is similar to any other job, except that attributes like tags, cloud, and other attributes are ignored for a child job.
    • Required, if configured in your application profile.

  • Type: String

parameters

 Click here to expand...

parameters
  • Description: Information about the types of parameters used to start this job.
  • Type: Sequence of parameter types

    cloudParams
    • Description: Cloud specific job parameters (not required for SaaS deployments) – information about the cloud where new job is started
    • Type: Object

      cloud
      • Description: The user-assigned name for the cloud region where the new job is started.
      • Type: String
      instance
      • Description: The name of the cloud Instance type that is used to start the new job. See Manage Instance Types for additional context.
      • Type: String

      storage
      • Description: Identifies storage-related cloud information
      • Type: Array of mapped attributes

        regionId
        • DescriptionUnique, system-generated identifier for the cloud region 
        • Type: String
        cloudAccountId
        • Description: Unique, system-generated identifier for the cloudAccount
        • Type: String
        size
        • Description: Total number of records that any list page should contain. The default is: 

          • v1 APIs = 20 records

          • v2 APIs:

            • Prior to 4.8.0: All elements are returned and the page value is ignored.

            • Effective 4.8.0: 50 records
        • Type: Integer
        numNodes
        • DescriptionThe number of nodes in this storage configuration
        • Type: Integer
        cloudSpecificSettings
        • Description: Settings for this cloud provider
        • Type: Name-Value Pair (array)
        address
        • Description: The DNS name or the IP address of the resource VM (for example, CCO, storage)
        • Type: String

      rootVolumeSize
      • Description: Root volume size (in GB) if you need to expand root disk when you launch a VM. The size must be bigger than the size defined by the instance type. This is required for OpenStack, but optional for AWS.

        Optional for AWS

        To provide a larger size for root volume for an AWS deployment, use the newer generation of CloudCenter instance types. The older generation of instance types like the t1, m1 series do not support the resizing of root volume. To use the older generation of instance types, configure the root volume size as 0. This configuration, by default, uses the AMI's  root volume size. See Multiple Volumes for additional context.

      • Type: String
      cloudProperties
      • Description: Information about the cloud region configuration. See Application Deployment for a use case.
      • Type: Array of name-value pairs

        name
        • DescriptionThe name assigned for this CloudCenter ResourceValid characters are letters, numbers, underscores, and spaces.

        • Type: String

        value
        • Description: Indicates the set value for this property
        • Type: Float

      • Availability Set Examples: If using CloudCenter 4.5.6 or later, see Availability Sets and Zones for a feature explanation or the following cloud-specific attributes:
    appParams
    • Description: Information about the application property
    • Type: Array of name-value pairs

      name
      • DescriptionThe name assigned for this CloudCenter ResourceValid characters are letters, numbers, underscores, and spaces.

      • Type: String

      value
      • Description: Indicates the set value for this property
      • Type: Float

    envParams
    • Description: Information about the application property
    • Type: Array of name-value pairs

      name
      • DescriptionThe name assigned for this CloudCenter ResourceValid characters are letters, numbers, underscores, and spaces.

      • Type: String

      value
      • Description: Indicates the set value for this property
      • Type: Float

 benchmarkLoadGenerator
  • Description: Identifies if this is a load generating  benchmark job.
  • Type:  Boolean

    • true = It is a load generating  benchmark job.
    • false = It is not load generating  benchmark job.

This attribute is only displayed for child-level jobs, not for parent-level jobs.

parameters

 Click here to expand...

parameters
  • Description: Information about the types of parameters used to start this job.
  • Type: Sequence of parameter types

    cloudParams
    • Description: Cloud specific job parameters (not required for SaaS deployments) – information about the cloud where new job is started
    • Type: Object

      cloud
      • Description: The user-assigned name for the cloud region where the new job is started.
      • Type: String
      instance
      • Description: The name of the cloud Instance type that is used to start the new job. See Manage Instance Types for additional context.
      • Type: String

      storage
      • Description: Identifies storage-related cloud information
      • Type: Array of mapped attributes

        regionId
        • DescriptionUnique, system-generated identifier for the cloud region 
        • Type: String
        cloudAccountId
        • Description: Unique, system-generated identifier for the cloudAccount
        • Type: String
        size
        • Description: Total number of records that any list page should contain. The default is: 

          • v1 APIs = 20 records

          • v2 APIs:

            • Prior to 4.8.0: All elements are returned and the page value is ignored.

            • Effective 4.8.0: 50 records
        • Type: Integer
        numNodes
        • DescriptionThe number of nodes in this storage configuration
        • Type: Integer
        cloudSpecificSettings
        • Description: Settings for this cloud provider
        • Type: Name-Value Pair (array)
        address
        • Description: The DNS name or the IP address of the resource VM (for example, CCO, storage)
        • Type: String

      rootVolumeSize
      • Description: Root volume size (in GB) if you need to expand root disk when you launch a VM. The size must be bigger than the size defined by the instance type. This is required for OpenStack, but optional for AWS.

        Optional for AWS

        To provide a larger size for root volume for an AWS deployment, use the newer generation of CloudCenter instance types. The older generation of instance types like the t1, m1 series do not support the resizing of root volume. To use the older generation of instance types, configure the root volume size as 0. This configuration, by default, uses the AMI's  root volume size. See Multiple Volumes for additional context.

      • Type: String
      cloudProperties
      • Description: Information about the cloud region configuration. See Application Deployment for a use case.
      • Type: Array of name-value pairs

        name
        • DescriptionThe name assigned for this CloudCenter ResourceValid characters are letters, numbers, underscores, and spaces.

        • Type: String

        value
        • Description: Indicates the set value for this property
        • Type: Float

      • Availability Set Examples: If using CloudCenter 4.5.6 or later, see Availability Sets and Zones for a feature explanation or the following cloud-specific attributes:
    appParams
    • Description: Information about the application property
    • Type: Array of name-value pairs

      name
      • DescriptionThe name assigned for this CloudCenter ResourceValid characters are letters, numbers, underscores, and spaces.

      • Type: String

      value
      • Description: Indicates the set value for this property
      • Type: Float

    envParams
    • Description: Information about the application property
    • Type: Array of name-value pairs

      name
      • DescriptionThe name assigned for this CloudCenter ResourceValid characters are letters, numbers, underscores, and spaces.

      • Type: String

      value
      • Description: Indicates the set value for this property
      • Type: Float

Response Attributes

None