Share via


Source Schema for the Autoscaling Application Block

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 autoscalingConfiguration Element | Attributes of the autoscalingConfiguration Element | The loggers Element | The rulesStores Element | The serviceInformationStores Element | The advancedOptions Element

This topic lists the XML elements and attributes used to configure the Autoscaling Application Block. You can manually edit the XML data, but the Enterprise Library configuration tool greatly simplifies this task. If you choose to edit the XML manually, use the schema information contained in this topic.

The configuration file has the following section handler declarations.

Note

You must add this section to the application configuration file so that the Enterprise Library common infrastructure recognizes the Autoscaling Application Block configuration settings.

<configSections>
  <section name="typeRegistrationProvidersConfiguration" 
           type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.TypeRegistrationProvidersConfigurationSection, 
                 Microsoft.Practices.EnterpriseLibrary.Common,
                 Version=5.0.505.0, Culture=neutral, 
                 PublicKeyToken=31bf3856ad364e35"/>
  <section name="autoscalingConfiguration" 
           type="Microsoft.Practices.EnterpriseLibrary.WindowsAzure.Autoscaling.Configuration.AutoscalingSettings,
                 Microsoft.Practices.EnterpriseLibrary.WindowsAzure.Autoscaling, 
                 Version=1.0.0.0, Culture=neutral,
                 PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
</configSections>

<typeRegistrationProvidersConfiguration>
  <add name="autoscalingConfiguration" sectionName="autoscalingConfiguration"/>
</typeRegistrationProvidersConfiguration>

The section handler declaration contains the name of the configuration settings section and the name of the section handler class that processes configuration data in that section. The name of the configuration settings section is autoscalingConfiguration. The name of the section handler class is Microsoft.Practices.EnterpriseLibrary.WindowsAzure.Autoscaling.Configuration.AutoscalingSettings.

The autoscalingConfiguration Element

The autoscalingConfiguration element specifies the configuration of an Autoscaling Application Block. This element is required.

The following sections describe attributes and child elements of the autoscalingConfiguration element.

Attributes of the autoscalingConfiguration Element

The following table lists the attributes of the autoscalingConfiguration element.

Attribute

Description

dataPointsStoreAccount

The block uses a table in this Microsoft Azure storage account to store the data points (for example, performance counter values and Azure queue lengths) that it collects from your Azure environment. The value of this attribute is either a connection string for an Azure storage account, or the name of a storage account setting defined in the Azure .cscfg file in this Visual Studio solution if you are hosting the block in an Azure role.

Storing the data point store in the local storage emulator is not supported.

This attribute is required.

dataPointsTableName

The block uses this table, found in the storage account specified by the dataPointsStoreAccount attribute, to store the data points that it collects from your Azure environment.

The default value for this attribute is "AutoscalerDatapoints."

ruleEvaluationRate

The block uses this value to determine how frequently it evaluates the autoscaling rules to determine if it should perform any scaling actions.

The default value for this attribute is four minutes ("00:04:00").

loggerName

The name of the logger that the Autoscaling Application Block uses to log details of its activities. See the loggers element below.

This attribute is required.

rulesStoreName

The name of the store that the Autoscaling Application Block uses to store autoscaling rule definitions. See the rulesStores element below.

This attribute is required.

serviceInformationStoreName

The name of the store that the Autoscaling Application Block uses to store information about the hosted services and roles that it can autoscale. See the serviceInformationStores element below.

This attribute is required.

Note

Each deployment of the Autoscaling Application Block must use its own data point store—either its own table in a shared storage account or a table in its own storage account.

The loggers Element

The loggers element is a child element of the autoscalingConfiguration element. The loggers element identifies the logger component that the Autoscaling Application Block uses. This element is required.

The add element is a child element of the loggers element. The add element adds the name of the logging component that the Autoscaling Application Block uses. There can only be a single add element.

The following table lists the attributes for the add element.

Attribute

Description

name

The name of the logging component. This attribute is required and must match the value of the loggerName attribute of the autoscalingConfiguration element.

type

The name of the class that implements the Microsoft.Practices.EnterpriseLibrary.WindowsAzure.Autoscaling.Logging.ILogger interface. This attribute is required.

The Autoscaling Application Block includes two implementations of the ILogger interface.

The following table lists the attributes for the add element if you are using a custom logger.

Attribute

Description

name

The name of the custom logging component. This attribute is required and must match the value of the loggerName attribute of the autoscalingConfiguration element.

type

The custom logger type. This class must implement the ILogger interface. This attribute is required.

customAttribute

A custom attribute name and value that you use to configure your custom logger. Zero or more custom attributes are permitted.

Note

To access Azure Diagnostics, you must run your role under full trust. For more information, see "Overview of Azure Diagnostics."

The rulesStores Element

The rulesStores element is a child element of the autoscalingConfiguration element. The rulesStores element identifies the store that the Autoscaling Application Block uses to store autoscaling rules. This element is required.

The add element is a child element of the rulesStores element. The add element adds the name of the store that the Autoscaling Application Block uses. There can be only a single add element. The rules store can be an Azure blob, a local file, or a custom store.

The following table lists the attributes for the add element if you are using blob storage for the rules.

Attribute

Description

name

The name of the rules store. This attribute is required and must match the value of the rulesStoreName attribute of the autoscalingConfiguration element.

type

"Microsoft.Practices.EnterpriseLibrary.WindowsAzure.Autoscaling.Rules.Configuration.BlobXmlFileRulesStore." This attribute is required.

blobName

The name of the blob where the Autoscaling Application Block stores the autoscaling rules. This attribute is required.

blobContainerName

The name of the blob container that contains the blob identified by the blobName attribute. This attribute is required.

storageAccount

The name of the Azure storage account that contains the blob container identified by the blobContainerName attribute. The value of this attribute is either a connection string for an Azure storage account, or the name of a storage account defined in the Azure .cscfg file in this Visual Studio solution. This attribute is required.

Using HTTP could lead to disclosure of information and could allow someone to tamper with the data being transferred. You should use HTTPS in most cases.

monitoringRate

The interval at which the Autoscaling Application Block checks for changes in the rules store. The default value for this attribute is 30 seconds ("00:00:30").

certificateStoreLocation

The location of the certificate store that contains the certificate that the block uses to decrypt the rules store. Possible values are LocalMachine and CurrentUser. The default value for this attribute is LocalMachine.

certificateStoreName

The name of the certificate store that contains the certificate that the block uses to decrypt the rules store. Possible values are AddressBook, AuthRoot, CertificateAuthority, Disallowed, My, Root, TrustedPeople, and TrustedPublisher. The default value for this attribute is My.

certificateThumbprint

The thumbprint that identifies the certificate to use to decrypt the service information store.

checkCertificateValidity

A Boolean value that specifies whether the block should request only valid certificates from the certificate store. An example of an invalid certificate is a certificate that has expired. The default value is false.

For more information about encrypting the rules store, see the topic "Encrypting the Rules Store and the Service Information Store."

The following table lists the attributes for the add element if you are using local file storage for the rules.

Attribute

Description

name

The name of the rules store. This attribute is required and must match the value of the rulesStoreName attribute of the autoscalingConfiguration element.

type

"Microsoft.Practices.EnterpriseLibrary.WindowsAzure.Autoscaling.Rules.Configuration.LocalXmlFileRulesStore." This attribute is required.

filename

The name of the file where the Autoscaling Application Block stores the autoscaling rules. This attribute is required.

To minimize the risk of disclosing information, you should protect the file using an ACL.

certificateStoreLocation

The location of the certificate store that contains the certificate that the block uses to decrypt the rules store. Possible values are LocalMachine and CurrentUser.The default value for this attribute is LocalMachine.

certificateStoreName

The name of the certificate store that contains the certificate that the block uses to decrypt the rules store. Possible values are AddressBook, AuthRoot, CertificateAuthority, Disallowed, My, Root, TrustedPeople, and TrustedPublisher. The default value for this attribute is My.

certificateThumbprint

The thumbprint that identifies the certificate to use to decrypt the service information store.

checkCertificateValidity

A Boolean value that specifies whether the block should request only valid certificates from the certificate store. An example of an invalid certificate is a certificate that has expired. The default value is false.

For more information about encrypting the rules store, see the topic "Encrypting the Rules Store and the Service Information Store."

The following table lists the attributes for the add element if you are using a custom rules store for the rules.

Attribute

Description

name

The name of the rules store. This attribute is required and must match the value of the rulesStoreName attribute of the autoscalingConfiguration element.

type

The custom rules store type. This class must implement the IRulesStore interface. This attribute is required.

customAttribute1

A custom attribute name and value that you use to configure your custom store. Zero or more custom attributes are permitted.

The serviceInformationStores Element

The serviceInformationStores element is a child element of the autoscalingConfiguration element. The serviceInformationStores element identifies the store that the Autoscaling Application Block uses to store information about the hosted services and roles that make up the application that the block is autoscaling.

The add element is a child element of the serviceInformationStores element. The add element adds the name of the store that the Autoscaling Application Block uses. There can only be a single add element. The service information store can be an Azure blob, a local file, or a custom store.

The following table lists the attributes for the add element if you are using blob storage for the service information.

Attribute

Description

name

The name of the service information store. This attribute is required and must match the value of the serviceInformationStoreName attribute of the autoscalingConfiguration element.

type

"Microsoft.Practices.EnterpriseLibrary.WindowsAzure.Autoscaling.ServiceModel.Configuration.BlobXmlFileServiceInformationStore." This attribute is required.

blobName

The name of the blob where the Autoscaling Application Block stores the service information. This attribute is required.

blobContainerName

The name of the blob container that contains the blob identified by the blobName attribute. This attribute is required.

storageAccount

The name of the Azure storage account that contains the blob container identified by the blobContainerName attribute. The value of this attribute is either a connection string for an Azure storage account, or the name of a storage account defined in the Azure .cscfg file in this Visual Studio solution. This attribute is required.

Using HTTP could lead to disclosure of information and could allow someone to tamper with the data being transferred. You should use HTTPS in most cases.

monitoringRate

The interval, specified in seconds, at which the Autoscaling Application Block checks for changes in the service information store. The default value for this attribute is thirty seconds ("00:00:30").

certificateStoreLocation

The location of the certificate store that contains the certificate that the block uses to decrypt the service information store. Possible values are LocalMachine and CurrentUser.The default value for this attribute is LocalMachine.

certificateStoreName

The name of the certificate store that contains the certificate that the block uses to decrypt the service information store. Possible values are AddressBook, AuthRoot, CertificateAuthority, Disallowed, My, Root, TrustedPeople, and TrustedPublisher. The default value for this attribute is My.

certificateThumbprint

The thumbprint that identifies the certificate to use to decrypt the service information store.

checkCertificateValidity

A Boolean value that specifies whether the block should request only valid certificates from the certificate store. An example of an invalid certificate is a certificate that has expired. The default value is false.

For more information about encrypting the service information store, see the topic "Encrypting the Rules Store and the Service Information Store."

The following table lists the attributes for the add element if you are using local file storage for the service information.

Attribute

Description

name

The name of the service information store. This attribute is required and must match the value of the serviceInformationStoreName attribute of the autoscalingConfiguration element.

type

"Microsoft.Practices.EnterpriseLibrary.WindowsAzure.Autoscaling.ServiceModel.Configuration.LocalXmlFileServiceInformationStore." This attribute is required.

fileName

The name of the file where the Autoscaling Application Block stores the service information. This attribute is required.

To minimize the risk of disclosing information, you should protect the file using an ACL.

certificateStoreLocation

The location of the certificate store that contains the certificate that the block uses to decrypt the service information store. Possible values are LocalMachine and CurrentUser.The default value for this attribute is LocalMachine.

certificateStoreName

The name of the certificate store that contains the certificate that the block uses to decrypt the service information store. Possible values are AddressBook, AuthRoot, CertificateAuthority, Disallowed, My, Root, TrustedPeople, and TrustedPublisher. The default value for this attribute is My.

certificateThumbprint

The thumbprint that identifies the certificate to use to decrypt the service information store.

checkCertificateValidity

A Boolean value that specifies whether the block should request only valid certificates from the certificate store. An example of an invalid certificate is a certificate that has expired. The default value is false.

For more information about encrypting the service information store, see the topic "Encrypting the Rules Store and the Service Information Store."

The following table lists the attributes for the add element if you are using a custom service information store for the rules.

Attribute

Description

name

The name of the service information store. This attribute is required and must match the value of the serviceInformationStoreName attribute of the autoscalingConfiguration element.

type

The custom service information store type. This class must implement the IServiceInformationStore interface. This attribute is required.

customAttribute1

A custom attribute name and value that you use to configure your custom store. Zero or more custom attributes are permitted.

The advancedOptions Element

The advancedOptions element is a child element of the autoscalingConfiguration element. The advancedOptions element identifies the tracker component that the Autoscaling Application Block uses to track autoscaling operations and the execution lease component that the Autoscaling Application Block uses to ensure that only a single instance of the autoscaler component can run at any one time.

The serviceManagementRequestTracker element is a child element of the advancedOptions element. The serviceManagementRequestTracker element adds the name of the storage account that the Autoscaling Application Block uses to store service management operations tracking data. There can be only a single serviceManagementRequestTracker element.

The following table lists the attributes of the serviceManagementRequestTracker element.

Attribute

Description

storageAccount

The name of the storage account that the Autoscaling Application Block uses to store service management operations tracking data. The value of this attribute is either a connection string for an Azure storage account, or the name of a storage account defined in the Azure .cscfg file in this Visual Studio solution. This attribute is required.

Using HTTP could lead to disclosure of information and could allow someone to tamper with the data being transferred. You should use HTTPS in most cases.

trackingRate

Specifies the frequency at which the metronome runs the request tracker. This attribute is optional; the default value is five minutes.

trackServiceManagementRequests

A Boolean flag that determines whether the block tracks service management requests. This attribute is required; the default value is false.

The executionLease element is a child element of the advancedOptions element. The executionLease element controls how the block acquires a lease on a blob. This lease is used to ensure that only a single instance of the block can perform scaling operations at any one time. There can only be a single executionLease element.

The following table lists the attributes for the executionLease element.

Attribute

Description

useBlobExecutionLease

A Boolean flag that determines whether the Autoscaling Application Block should use a lease on a blob to control the behavior of the Metronome class. This attribute is optional; the default value is false.

blobExecutionLeaseBlobName

The name of the blob that the Autoscaling Application Block obtains a lease on. This attribute is optional; the default value is "execution-leases."

blobExecutionLeaseBlobContainerName

The name of the blob container that contains the blob identified by the blobExecutionLeaseBlobName attribute. This attribute is optional; the default value is "autoscaling-container."

blobExecutionLeaseStorageAccount

The name of the Azure storage account that contains the blob container identified by the blobExecutionLeaseBlobContainerName attribute. The value of this attribute is either a connection string for an Azure storage account, or the name of a storage account defined in the Azure .cscfg file in this Visual Studio solution. This attribute is required.

Note

The default value of the useBlobExecutionLease attribute is false. This setting helps to reduce the performance impact of running the block. However, you must set this value to true if you plan to have multiple instances of the role that hosts the block running in Azure. Setting the useBlobExecutionLease attribute to true ensures that only a single instance of the block at a time is allowed to evaluate rules and collect data.

Next Topic | Previous Topic | Home

Last built: June 7, 2012