Service Information Schema Description

Retired Content

This content and the technology described is outdated and is no longer being maintained. For more information, see Transient Fault Handling.

patterns & practices Developer Center

On this page:
The serviceModel Element | The stabilizer Element | The subscriptions Element | The services Element | Attributes of the role Element | The storageAccounts Element | The scaleGroups Element | Attributes of the scaleGroup Element | Attributes of the role Element

This topic lists the XML elements and attributes used to configure the service information in the Autoscaling Application Block. You can manually edit the XML data in a text or XML editor, or build your own tool to edit the configuration data. You can use the schema information contained in this topic when you edit the data manually, or when you design your own custom UI to edit this data.

If you have installed the Autoscaling Application Block in your Visual Studio project by using NuGet, you can find the AutoscalingServiceModel.xsd schema file in the root folder of the project.

The configuration file has the following top-level structure.

<serviceModel xmlns=
    "https://schemas.microsoft.com/practices/2011/entlib/autoscaling/serviceModel">
  <stabilizer>

  </stabilizer>
  <subscriptions>
    <subscription ...>
      <services>
        ...
      </services>
      <storageAccounts>
        ...
      </storageAccounts>
    </subscription>
  </subscriptions>

  <scaleGroups>
    ...
  </scaleGroups>
</serviceModel>

The serviceModel Element

The serviceModel element has three child elements: the stabilizer element must appear once, the subscriptions element must appear once, and the scaleGroups element must appear once.

The stabilizer Element

The stabilizer element configures the behavior of the stabilizer feature of the Autoscaling Application Block. For more information, see the topic The Stabilizer.

The following table describes the attributes of the stabilizer element.

Attribute

Description

scaleUpCooldown

A timespan that specifies how long the block should wait after scaling up a role before performing another scaling operation on the same role. The block uses the value of this attribute as the default value if there is no scaleUpCooldown attribute defined for an individual role. This attribute is optional; it has a default value of 20 minutes.

scaleDownCooldown

A timespan that specifies how long the block should wait after scaling down a role before performing another scaling operation on the same role. The block uses the value of this attribute as the default value if there is no scaleDownCooldown attribute defined for an individual role. This attribute is optional; it has a default value of 20 minutes.

scaleUpOnlyInFirstMinutesOfHour

An integer value of 0 or between 10 and 60 that specifies when the block can perform scale up operations. For example, if this value is set to 20, the block will only perform scale up operations if they occur in the first 20 minutes of the hour. This attribute enables you to make the best use of the compute time you pay for by restricting role instances from running for a short period of time in the hour in which they start.

This attribute is optional; if this attribute is 0 or is not present, the block can scale up at any time.

scaleDownOnlyInLastMinutesOfHour

An integer value of 0 or between 10 and 60 that specifies when the block can perform scale down operations. For example, if this value is set to 15, the block will only perform scale down operations if they occur in the last 15 minutes of the hour. This attribute enables you to make the best use of the compute time you pay for by keeping role instances running for as long as possible within an hour.

This attribute is optional; if this attribute is 0 or is not present, the block can scale down at any time.

notificationsCooldown

A timespan that specifies how long the block should wait after sending a scaling notification before sending another notification for the same role. This attribute is optional; it has a default value of 30 minutes.

The stabilizer element contains zero or more role elements. The following table describes the attributes of the role element.

Attribute

Description

roleAlias

This is the alias of a role defined in the services element.

scaleUpCooldown

A timespan that specifies how long the block should wait after scaling up a role before performing another scaling operation on the same role. If present, this value overrides the value set in the stabilizer element for this role. This attribute is optional; it has a default value of 20 minutes.

scaleDownCooldown

A timespan that specifies how long the block should wait after scaling down a role before performing another scaling operation on the same role. If present, this value overrides the value set in the stabilizer element for this role. This attribute is optional; it has a default value of 20 minutes.

scaleUpOnlyInFirstMinutesOfHour

An integer value of 0 or between 10 and 60 that specifies when the block can perform scale up operations. For example, if this value is set to 20, the block will only perform scale up operations if they occur in the first 20 minutes of the hour. This attribute enables you to make the best use of the compute time you pay for by restricting role instances from running for a short period of time in the hour in which they start. If present, this value overrides the value set in the stabilizer element for this role.

This attribute is optional; if this attribute is 0 or is not present, the block can scale up at any time.

scaleDownOnlyInLastMinutesOfHour

An integer value of 0 or between 10 and 60 that specifies when the block can perform scale down operations. For example, if this value is set to 15, the block will only perform scale down operations if they occur in the last 15 minutes of the hour. This attribute enables you to make the best use of the compute time you pay for by keeping role instances running for as long as possible within an hour. If present, this value overrides the value set in the stabilizer element for this role.

This attribute is optional; if this attribute is 0 or is not present, the block can scale down at any time.

The stabilizer element contains zero or more group elements. The following table describes the attributes of the group element.

Attribute

Description

groupName

This is the alias of a scale group defined in the scaleGroups element.

scaleUpCooldown

A timespan that specifies how long the block should wait after scaling up a role before performing another scaling operation on the same role. If present, this value overrides the value set in the stabilizer element for this scale group. This attribute is optional; it has a default value of 20 minutes.

scaleDownCooldown

A timespan that specifies how long the block should wait after scaling down a role before performing another scaling operation on the same role. If present, this value overrides the value set in the stabilizer element for this scale group. This attribute is optional; it has a default value of 20 minutes.

scaleUpOnlyInFirstMinutesOfHour

An integer value of 0 or between 10 and 60 that specifies when the block can perform scale up operations. For example, if this value is set to 20, the block will only perform scale up operations if they occur in the first 20 minutes of the hour. This attribute enables you to make the best use of the compute time you pay for by restricting role instances from running for a short period of time in the hour in which they start. If present, this value overrides the value set in the stabilizer element for this scale group.

This attribute is optional; if this attribute is 0 or is not present, the block can scale up at any time.

scaleDownOnlyInLastMinutesOfHour

An integer value of 0 or between 10 and 60 that specifies when the block can perform scale down operations. For example, if this value is set to 15, the block will only perform scale down operations if they occur in the last 15 minutes of the hour. This attribute enables you to make the best use of the compute time you pay for by keeping role instances running for as long as possible within an hour. If present, this value overrides the value set in the stabilizer element for this scale group.

This attribute is optional; if this attribute is 0 or is not present, the block can scale down at any time.

The subscriptions Element

The subscriptions element contains one or more subscription elements. Each subscription element defines a Microsoft Azure subscription. The following table describes the attributes of the subscription element.

Attribute

Description

name

A name to identify the subscription. This is a required attribute.

subscriptionId

A GUID that uniquely identifies your subscription. You can find this in your Azure portal. This is a required attribute.

certificateThumbprint

The certificate thumbprint of your Management API key. You can find this in your Azure portal. The Autoscaling Application Block needs this value when it invokes any scaling operations using the Azure Management API. This is a required attribute.

For more information about using certificates with Azure, see "Managing Certificates in Azure" on MSDN.

certificateStoreName

The name of the certificate store that contains the Azure Management API certificate. This is a required attribute.

certificateStoreLocation

The location of the certificate store that contains the Azure Management API certificate. This is a required attribute.

The subscription element has two child elements: services and storageAccounts.

The services Element

The services element contains one or more service elements. Each service element describes an Azure hosted service with roles that you want to use as rule targets.

Each service element contains a roles child element. Each roles element contains one or more role elements. Each role element describes an Azure role that can be a target in your autoscaling rules.

Note

You do not need to describe all your hosted services and roles, only those that you want to use as targets in your autoscaling rules.

The following table describes the attributes of the service element.

Attribute

Description

dnsPrefix

The name of the hosted service as it appears in the Azure portal. This is a required attribute.

slot

The name of the Azure deployment slot that contains the role you want to use as targets for your autoscaling rules. You can find this in your Azure portal. This is a required attribute.

scalingMode

Controls what scaling actions to perform on this hosted service.

Scale. Scale the roles in this hosted service.

Notify. Send a notification.

ScaleAndNotify. Scale the roles in this hosted service and send a notification.

This is an optional attribute.

notificationRecipients

The email addresses of the people who should receive notifications. If the scalingMode attribute is Notify or ScaleAndNotify, this is a required attribute.

Attributes of the role Element

The following table describes the attributes of the role element.

Attribute

Description

alias

An alias used to identify the role. The definition of storage groups uses this alias to refer to the role. Alias and scale group names must all be unique. This is a required attribute.

roleName

The name of the role as it appears in the Azure portal. This is a required attribute.

wadStorageAccountName

The name of the Azure storage account that stores the diagnostics data from this role. This name is defined by the storageAccount element. This is a required attribute.

The storageAccounts Element

The storageAccounts element is a child of the subscriptions element. It contains one or more storageAccount elements. Each storageAccount element defines an Azure storage account in the subscription.

The following table describes the attributes of the storageAccount element.

Attribute

Description

alias

An alias for a storage account in the subscription. The role element uses this alias to identify the storage account used to store its diagnostic data. This is a required attribute.

connectionString

The connection string needed to connect to the storage account. The block uses the connection string when it connects to a storage account from on premises or in a different hosted service. This is a required attribute.

The scaleGroups Element

The scaleGroups element contains zero or more scaleGroup elements. Each scaleGroup element contains a roles element that contains one or more role elements. Each role element identifies a role that is a member of the scale group.

Attributes of the scaleGroup Element

The following table describes the attributes of the scaleGroup element.

Attribute

Description

name

A name that identifies the scale group. Autoscaling rules can use this name as a target. This is a required attribute.

Attributes of the role Element

The following table describes the attributes of the role element.

Attribute

Description

roleAlias

An alias that identifies the role. This alias is defined by the role element in the service definition. This is a required attribute.

ratio

The value used as a weight when the autoscaling rule calculates the new instance counts for the scale group members. This is a required attribute.

Next Topic | Previous Topic | Home

Last built: June 7, 2012