AWS AppStream Fleets Test

With Amazon AppStream 2.0, you create fleet instances and stacks as part of the process of streaming applications. A fleet consists of streaming instances that run the image that you specify. A stack consists of an associated fleet, user access policies, and storage configurations.

For peak streaming performance, the fleets should be sized with adequate number of instances. If any fleet runs out of instances, then user requests will be rejected, leaving many users waiting endlessly for streaming sessions. To assure users of an above-par streaming experience at all times, administrators need to track the usage of every fleet created for streaming applications, and proactively identify those fleets that are rapidly exhausting their capacity. This is exactly what the AWS AppStream Fleets test does!

This test auto-discovers the Amazon AppStream fleets. For each fleet, the test reports the instance capacity of that fleet and the percentage capacity utilization. Alerts are sent out if any fleet is about to exhaust its capacity. This way, administrators are compelled to reset the fleet capacity or reconfigure autoscaling rules, so that the potential resource crunch and probable errors are avoided. Additionally, the test reports the state of each fleet, so that fleets that have stopped can be promptly identified. The test also reveals the fleet type, so you can easily figure out if the current operational status of the fleet is because of its type.

 

Target of the test: Amazon Cloud

Agent deploying the test: A remote agent

Output of the test: One set of results for each AppStream fleet

Configurable parameters for the test
Parameter Description

Test Period

How often should the test be executed.

Host

The host for which the test is to be configured.

Access Type

eG Enterprise monitors the AWS cloud using AWS API. By default, the eG agent accesses the AWS API using a valid AWS account ID, which is assigned a special role that is specifically created for monitoring purposes. Accordingly, the Access Type parameter is set to Role by default. Furthermore, to enable the eG agent to use this default access approach, you will have to configure the eG tests with a valid AWS Account ID to Monitor and the special AWS Role Name you created for monitoring purposes.

Some AWS cloud environments however, may not support the role-based approach. Instead, they may allow cloud API requests only if such requests are signed by a valid Access Key and Secret Key. When monitoring such a cloud environment therefore, you should change the Access Type to Secret. Then, you should configure the eG tests with a valid AWS Access Key and AWS Secret Key.

Note that the Secret option may not be ideal when monitoring high-security cloud environments. This is because, such environments may issue a security mandate, which would require administrators to change the Access Key and Secret Key, often. Because of the dynamicity of the key-based approach, Amazon recommends the Role-based approach for accessing the AWS API.

AWS Account ID to Monitor

This parameter appears only when the Access Type parameter is set to Role. Specify the AWS Account ID that the eG agent should use for connecting and making requests to the AWS API. To determine your AWS Account ID, follow the steps below:

  • Login to the AWS management console. with your credentials.

  • Click on your IAM user/role on the top right corner of the AWS Console. You will see a drop-down menu containing the Account ID (see Figure 1).

    Identifying AWS Account ID

    Figure 1 : Identifying the AWS Account ID

AWS Role Name

This parameter appears when the Access Type parameter is set to Role. Specify the name of the role that you have specifically created on the AWS cloud for monitoring purposes. The eG agent uses this role and the configured Account ID to connect to the AWS Cloud and pull the required metrics. To know how to create such a role, refer to Creating a New Role.

AWS Access Key, AWS Secret Key, Confirm AWS Access Key, Confirm AWS Secret Key

These parameters appear only when the Access Type parameter is set to Secret.To monitor an Amazon instance, the eG agent has to be configured with the access key and secret key of a user with a valid AWS account. For this purpose, we recommend that you create a special user on the AWS cloud, obtain the access and secret keys of this user, and configure this test with these keys. The procedure for this has been detailed in the Obtaining an Access key and Secret key topic. Make sure you reconfirm the access and secret keys you provide here by retyping it in the corresponding Confirm text boxes.

Proxy Host and Proxy Port

In some environments, all communication with the AWS cloud and its regions could be routed through a proxy server. In such environments, you should make sure that the eG agent connects to the cloud via the proxy server and collects metrics. To enable metrics collection via a proxy, specify the IP address of the proxy server and the port at which the server listens against the Proxy Host and Proxy Port parameters. By default, these parameters are set to none , indicating that the eG agent is not configured to communicate via a proxy, by default.

Proxy User Name, Proxy Password, and Confirm Password

If the proxy server requires authentication, then, specify a valid proxy user name and password in the proxy user name and proxy password parameters, respectively. Then, confirm the password by retyping it in the CONFIRM PASSWORD text box. By default, these parameters are set to none, indicating that the proxy sever does not require authentication by default.

Proxy Domain and Proxy Workstation

If a Windows NTLM proxy is to be configured for use, then additionally, you will have to configure the Windows domain name and the Windows workstation name required for the same against the proxy domain and proxy workstation parameters. If the environment does not support a Windows NTLM proxy, set these parameters to none.

Exclude Region

Here, you can provide a comma-separated list of region names or patterns of region names that you do not want to monitor. For instance, to exclude regions with names that contain 'east' and 'west' from monitoring, your specification should be: *east*,*west*

DD Frequency

Refers to the frequency with which detailed diagnosis measures are to be generated for this test. The default is 1:1. This indicates that, by default, detailed measures will be generated every time this test runs, and also every time the test detects a problem. You can modify this frequency, if you so desire. Also, if you intend to disable the detailed diagnosis capability for this test, you can do so by specifying none against DD frequency.

Detailed Diagnosis

To make diagnosis more efficient and accurate, the eG Enterprise embeds an optional detailed diagnostic capability. With this capability, the eG agents can be configured to run detailed, more elaborate tests as and when specific problems are detected. To enable the detailed diagnosis capability of this test for a particular server, choose the On option. To disable the capability, click on the Off option.

The option to selectively enable/disable the detailed diagnosis capability will be available only if the following conditions are fulfilled:

  • The eG manager license should allow the detailed diagnosis capability
  • Both the normal and abnormal frequencies configured for the detailed diagnosis measures should not be 0.
Measures reported by the test:

Measurement

Description

Measurement Unit

Interpretation

State

Indicates the current state of this fleet.

Number

The values this measure takes and the states they represent are listed in the table below:

Measure Value

State

0

Starting

1

Running

2

Stopped

Use the detailed diagnosis of this measure to know when the fleet was created and how long the streaming sessions will be active in the fleet.

Type

Indicates the type of this fleet.

Number

The values this measure takes and the fleet types they represent are listed in the table below:

Measure Value

State

Description

0

Always-On

Streaming instances run continuously, even when no users are streaming applications and desktops.

1

On-Demand

Streaming instances run only when users are streaming applications and desktops. Streaming instances not yet assigned to users are in a stopped state.

Use the detailed diagnosis of this measure to know when the fleet was created and the image that it is configured to run. Additionally, the detailed metrics report the maximum amount of time a streaming session can remain active before an instance is terminated and is replaced by a new instance. From the detailed diagnostics, you will also know the 'Disconnect timeout' configured for the fleet. This is the amount of time that a streaming session remains active after users disconnect. If users try to reconnect to the streaming session after a disconnection or network interruption within this time interval, they are connected to their previous session. Otherwise, they are connected to a new session with a new streaming instance. If you associate a stack with a fleet for which a redirect URL is specified, after users’ streaming sessions end, the users are redirected to that URL. Furthermore, the Idle disconnect timeout period that is configured for the period is also revealed as part of detailed diagnostics. This is the amount of time that users can be idle (inactive) before they are disconnected from their streaming session.

Actual capacity

Indicates the total number of instances in this fleet that are available for streaming or are currently streaming.

Number

 

Available capacity

Indicates the number of idle instances currently available for user sessions in this fleet.

Number

Compare the value of this measure across fleets to know which fleet does not have sufficient idle instances to service its workload.

Ideally, the value of this measure should be high. A low value could indicate over-utilization of capacity, owing to which enough idle instances will not be available for streaming. If this test reports a significantly low value for this measure for any particular fleet, you may want to consider increasing the capacity of that fleet.

Used capacity

Indicates the number of instances in this fleet that are currently being used for streaming sessions.

Number

Ideally, the value of this measure should be much lower than that of the Actual capacity measure. If this measure value is high or dangerously close to that of the Actual capacity measure, it could indicate that the fleet is rapidly running out of instances. As a result, users may be denied instances for launching streaming sessions. This can adversely impact the streaming experience of users. To avoid this, you may want to consider increasing the capacity of the fleet.

Usage utilization

Indicates the percentage of instances in a fleet that are being used.

Percent

The value of this measure is computed using the formula:

(Used capacity / Actual capacity)*100

If this value is close to 100 for any fleet, it is a cause for concern. This is because, it implies that the fleet is rapidly running out of instances. As a result, users may be denied instances for launching streaming sessions. This can adversely impact the streaming experience of users. To avoid this, you may want to consider increasing the capacity of the fleet.

Desired capacity

Indicates the total number of instances in this fleet that are either running or pending. This represents the total number of concurrent streaming sessions your fleet can support in a steady state.

Number

The value of this measure is the sum of the values of the Actual Capacity and Pending Capacity measures.

Pending capacity

Indicates the additional number of streaming sessions this fleet can support after provisioning is complete.

Number

 

Running capacity

Represents the number of concurrent streaming sessions that can be supported by this fleet in its current state.

Number

This metric is reported only if the Type measure reports the value Always-On. For such fleets, this measure will have the same value as the Actual capacity measure.

Insufficient capacity errors

Indicates the number of session requests to this fleet that were rejected due to lack of capacity.

Number

The value 0 is desired for this measure. A non-zero value indicates that one/more session requests were rejected because the fleet did not have enough instances. In such a situation, quickly adjust your scaling policies to optimize availability of instances for users. Pre-emptively, you can configure the eG Enterprise system to alert you once the Usage utilization measure crosses the 80 percent mark, so that the actual capacity of the fleet can be adjusted to avoid such errors.

Stacks

Indicates the number of stacks with which this fleet is associated.

Number

Use the detailed diagnosis of the measure to know which stacks are associated with this fleet.

Users with connected sessions

Indicates the number of users who currently have open streaming sessions in this fleet.

Number

Use the detailed diagnosis of this measure to know which users currently have active streaming sessions on the fleet, when each session started, and the maximum time for which every session will stay active.

Users with disconnected sessions

Indicates the number of users who are currently disconnected from the sessions in this fleet.

Number

Use the detailed diagnosis of this measure to know which user sessions are currently disconnected, when each session started, and the maximum time for which every session will stay active.