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. |
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.
- SystemDiagnosticsLogger. This logger uses the System.Diagnostics namespace to write log entries.
- LoggingBlockLogger. This logger uses the Enterprise Library Logging Application Block to write log entries.
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