Set up SLA test configurations

Manage your Service-Level Agreement (SLA) test configurations and the resulting availability and performance reports to effectively monitor how well your services are performing.

When working with the SLA API, you need to have READ-WRITE access to it.

Create an SLA test

To use the SLA reports and see their results, first, you need to configure your SLA tests.

  1. Before creating a new SLA test configuration, ensure you haven't exhausted the maximum number of allowed availability or performance test configurations on your contract. Run the Get-SLATestConfigurationQuota command to verify that.

    You can have only one availability test configuration per contract.

    Get-SLATestConfigurationQuota
    
    contractId availabilitySlaCounts performanceSlaCounts
    ---------- --------------------- --------------------
    C-0N7RAC7  @{used=0; max=1}      @{used=1; max=5}
    
  2. For the create operation, you need to specify a region, a so-called agent group. It corresponds to the regional SLA you received with your purchase. To retrieve a list of group agent IDs and their corresponding descriptions, run the Get-SLATestAgentGroup command.

    Get-SLATestAgentGroup
    
    agentGroupId name
    ------------ ----
              33 APJ SLA
              34 ASEAN SLA
              18 Europe SLA
              35 Australia SLA
              19 China SLA
              36 India SLA
               5 North American SLA
              23 Australia SLA
              10 Global SLA
              13 Global without China SLA
              29 NE APAC SLA
    
  3. When creating a new availability or performance SLA test configuration, define its required settings in the -Body parameter of the New-SLATestConfiguration command. Use a hashtable, PSCustomObject, or JSON string to pass the request body values.

    Note that you can't modify the group, contract, and test type after you create the test configuration.

    The performanceSlaTarget request body parameter is required only for the performance SLA test types.

    $myNewSLATest = @{
       agentGroupId = 5
       contractId = "C-0N7RAC7"
       groupId = 12345
       name = "my-sla-test"
       performanceSlaTarget = 1.4
       testDetails = @{
         akamaiUrl = "https://www.example.com/testObject.txt"
         originDnsHostnameOverride = "mypage.example.com"
         originUrl = "https://www.example.com/testObject.txt"
       }
       type ="PERFORMANCE"
    }
    
    New-SLATestConfiguration -Body $myNewSLATest
    
    $myNewSLATest = '{
       "agentGroupId": 5,
       "contractId": "C-0N7RAC7",
       "groupId": 12345,
       "name": "my-sla-test",
       "performanceSlaTarget": 1.4,
       "testDetails": {
         "akamaiUrl": "http://www.example.com/testObject.txt",
         "originDnsHostnameOverride": "mypage.example.com",
         "originUrl": "http://www.example.com/testObject.txt"
       },
       "type": "PERFORMANCE"
     }'
    
    New-SLATestConfiguration -Body $myNewSLATest
    
    slaTestId
    ---------
    12345
    

    You can also define your test configuration in a JSON file, load the file into a variable, convert it into a PowerShell object, and pipe it to the command.

    $mySLAConfig = Get-Content ./mySLAConfig.json | ConvertFrom-Json -Depth 100
    
    $mySLAConfig | New-SLATestConfiguration
    

Get an SLA test

If you don't know your SLA test ID, use the Get-SLATestConfiguration to return the list of all SLA tests available to you. For a specific SLA test configuration, pass its ID in the command.

# Get all
Get-SLATestConfiguration

# Get one
Get-SLATestConfiguration -SLATestID '12345'
slaTestId             : 12345
contractId            : C-0N7RAC7
agentGroupId          : 5
name                  : my-sla-test-1
type                  : PERFORMANCE
testDetails           : @{originUrl=https://www.example.com/testObject.txt; 
                        akamaiUrl=https://www.example.com/testObjec.txt; originDnsHostnameOverride=}
performanceSlaTarget  : 
availabilityFrequency : 360

slaTestId             : 98765
contractId            : C-0N7RAC7
agentGroupId          : 10
name                  : my-sla-test-2
type                  : AVAILABILITY
testDetails           : @{originUrl=https://www.example-2.com/testObject.txt; akamaiUrl=https://www.example-2.com/testObject.txt; 
                        originDnsHostnameOverride=}
performanceSlaTarget  : 
availabilityFrequency : 360
slaTestId             : 12345
contractId            : C-0N7RAC7
agentGroupId          : 5
name                  : my-sla-test-1
type                  : PERFORMANCE
testDetails           : @{originUrl=https://www.example.com/testObject.txt; 
                        akamaiUrl=https://www.example.com/testObject.txt; originDnsHostnameOverride=mypage.example.com}
performanceSlaTarget  : 1.4
availabilityFrequency : 360

Update an SLA test

To update a specific SLA test, first, get a specific record, save its output locally, and edit it according to your needs.

Get-SLATestConfiguration -SLATestID '12345' | ConvertTo-Json -Depth 100 | Out-File -FilePath ./mySLAConfig.json
{
  "slaTestId": 12345,
  "contractId": "C-0N7RAC7",
  "agentGroupId": 18,
  "name": "my-updated-sla-test",
  "type": "PERFORMANCE",
  "testDetails": {
    "originUrl": "http://www.other-example.com/testObject.txt",
    "akamaiUrl": "http://www.other-example.com/testObject.txt",
    "originDnsHostnameOverride": "myotherpage.example.com"
  },
  "performanceSlaTarget": 1.96,
  "availabilityFrequency": 360,
  "akamaiInternalInfo": {
    "originSaTestId": 98765,
    "akamaiSaTestId": 43219
  }
}

Then convert it back to a PowerShell object and pipe it to the Set-SLATestConfiguration command.

$mySLAConfig = Get-Content ./mySLAConfig.json | ConvertFrom-Json -Depth 100

$mySLAConfig | Set-SLATestConfiguration -SLATestID '12345'

Alternatively, you can save the result of the Get-SLATestConfiguration command in a variable and update specific attributes of your SLA test, then pipe the whole object back to the Set-SLATestConfiguration command to make your changes effective.

$mySLAConfig = Get-SLATestConfiguration -SLATestID 12345

$mySLAConfig.name = 'my-updated-sla-test'
$mySLAConfig.agentGroupId = 10
$mySLAConfig.testDetails.originUrl = "http://www.other-example.com/testObject.txt"

$mySLAConfig | Set-SLATestConfiguration -SLATestID '12345'

The Set-SLATestConfiguration command doesn't return anything. To verify your changes, run the Get-SLATestConfiguration command and pass the ID of the updated SLA.

Delete an SLA test

To delete an existing SLA test configuration, use the Remove-SLATestConfiguration command. Provide the ID of the SLA test configuration you want to delete.

Remove-SLATestConfiguration -SLATestID '12345'