2

I want to scale out or scale in the service fabric application. For this I have added the autoscalesettings with CPU metric on VM scale set. And in VM scale set, I have the extension section with wadcfg section with counter on CPU metric. And the data is successfully getting emitted to storage account which I have specified.But scale out or scale on options are not getting done with VMSS and service fabric cluster. I have gone through trouble shooting steps which were specified in azure portal.https://azure.microsoft.com/en-us/documentation/articles/virtual-machine-scale-sets-troubleshoot/

And without service fabric, the same CPU metric is working fine and VM scale set is getting scale out.

Checked subscription limit as well. But could not able to find the issue. But, we are getting a mail notification saying, could not able to read the diagnostics data for autoscale when vmss and service fabric together deployed.

Shri
  • 149
  • 1
  • 1
  • 15

1 Answers1

4

Service Fabric does support AutoScale it's just not very well documented. Here is a basic documentation - https://azure.microsoft.com/en-us/documentation/articles/service-fabric-cluster-scale-up-down/ which uses "XmlCfg" element to configure counters. However there is a way to do it via JSON as well which is more readable. Here is a snippet of a "settings" block from "IaaSDiagnostics" extension.

Note the inclusion of "PerformanceCounters" and "Metrics" elements under "DiagnosticMonitorConfiguration".

{
  "name": "Windows_VMDiagnosticsVmExt",
  "properties": {
    "type": "IaaSDiagnostics",
    "autoUpgradeMinorVersion": true,
    "protectedSettings": {
      "storageAccountName": "[variables('applicationDiagnosticsStorageAccountName')]",
      "storageAccountKey": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('applicationDiagnosticsStorageAccountName')),'2016-01-01').keys[0].value]",
      "storageAccountEndPoint": "https://core.windows.net/"
    },
    "publisher": "Microsoft.Azure.Diagnostics",
    "settings": {
      "WadCfg": {
        "DiagnosticMonitorConfiguration": {
          "overallQuotaInMB": "50000",
          "PerformanceCounters": {
            "PerformanceCounterConfiguration": [
              {
                "annotation": [],
                "scheduledTransferPeriod": "PT1M",
                "counterSpecifier": "\\Processor(_Total)\\% Processor Time",
                "sampleRate": "PT1M"
              },
              {
                "annotation": [],
                "scheduledTransferPeriod": "PT1M",
                "counterSpecifier": "\\Memory\\% Committed Bytes in Use",
                "sampleRate": "PT1M"
              }
            ]
          },
          "Metrics": {
            "resourceId": "[resourceId('Microsoft.Compute/virtualMachineScaleSets', variables('defaultVMNodeTypeName'))]",
            "MetricAggregation": [
              { "scheduledTransferPeriod": "PT1H" },
              { "scheduledTransferPeriod": "PT1M" }
            ]
          },
          "EtwProviders": {
            "EtwEventSourceProviderConfiguration": [
              {
                "provider": "Microsoft-ServiceFabric-Actors",
                "scheduledTransferKeywordFilter": "1",
                "scheduledTransferPeriod": "PT5M",
                "DefaultEvents": {
                  "eventDestination": "ServiceFabricReliableActorEventTable"
                }
              },
              {
                "provider": "Microsoft-ServiceFabric-Services",
                "scheduledTransferPeriod": "PT5M",
                "DefaultEvents": {
                  "eventDestination": "ServiceFabricReliableServiceEventTable"
                }
              }
            ],
            "EtwManifestProviderConfiguration": [
              {
                "provider": "cbd93bc2-71e5-4566-b3a7-595d8eeca6e8",
                "scheduledTransferLogLevelFilter": "Information",
                "scheduledTransferKeywordFilter": "4611686018427387904",
                "scheduledTransferPeriod": "PT5M",
                "DefaultEvents": {
                  "eventDestination": "ServiceFabricSystemEventTable"
                }
              }
            ]
          }
        }
      },
      "StorageAccount": "[variables('applicationDiagnosticsStorageAccountName')]"
    },
    "typeHandlerVersion": "1.5"
  }
}
stankovski
  • 2,129
  • 2
  • 16
  • 11
  • Thanks stankovski. After the above changes which you suggested I can see azure autoscale with Service Fabric Cluster is working fine successfully. The major section we have missed is "Metrics", when it is added, azure auto scale is working fine. – Shri Sep 14 '16 at 14:33
  • Just to clarify, currently, Service fabric does NOT fully support autoscale. It supports scale up but not scale down. – Rotem Varon Nov 01 '16 at 15:44