Load object formats

You can configure GTM to use XML and non-XML custom load objects. A custom load object file is an XML or plain text file that provides real-time information about the load of each resource. Resources can constrain multiple properties only if you are using XML load objects.

When you configure GTM to use load feedback based on an XML or non-XML load object, GTM periodically fetches a fresh load object using HTTP or HTTPS. By default, GTM fetches the load object every 30 seconds.

The load object must be accurate, timely, and available. If it is inaccurate, GTM cannot correctly balance the load. If it is untimely, that is, if the load data it reports is not up to date, load oscillations can occur because GTM is not able to detect the results of load balancing decisions it makes soon enough. If for some reason the load object is unavailable, GTM continues to use the most recent load data it was able to fetch successfully. Examples of reasons why the load object is unavailable include HTTP GET failures, the script throwing an error, or the server refusing connections.

You need to configure GTM to fetch a load object for each data center from a server you define. Use Control Center to configure one or more load servers for each data center by specifying this information.

  • The name or IP address of the load servers

  • The relative URL of the load object

  • Whether to use HTTP or HTTPS to fetch a load object

It's acceptable if the load object contains load information for other data centers, as the extra information is ignored.

XML load objects

XML load objects provide the complete information that GTM needs for dynamic targets. For each data center, the load object provides these values for each resource.

  • Current-load

  • Target-load

  • Capacity

A resource using an XML load object can constrain just one property using a data center, or it can constrain all properties using a data center.

The load object timestamp attribute should represent the time at which the load was sampled. The timestamp is represented in xsd:dateTime syntax and we strongly recommend using GMT. If the timestamp is too far in the past, GTM raises an alert.

If the load object fails any validity checks, GTM ignores the data, continues to use the most recently fetched good data, and raises an alert. These are examples of validity checks that the load object could fail.

  • A load object with invalid XML syntax

  • A mismatched domain or data center name

  • A current/target/maximum load value not between 0 - 2^31

  • A timestamp more than about ten minutes in the future

Example of an XML load object

In an XML load object, the value of the domain attribute should be your GTM domain's name. The following XML load object example uses the sample value storage.akadns.net as the domain.

The timestamp attribute is in xsd:dateTime syntax. The Z in the example means GMT. Other time zones work but we strongly recommend using GMT. The T in the example is the separator between the date and time mandated by the XML Schema Recommendation.

<load-object domain="storage.akadns.net"
          version="1"
          xmlns="http://www.akamai.com/Traffic Management/load-balancing"
          timestamp="2022-10-14T19:15:23Z"
          tag="12345" >
      <datacenter datacenterId="3131">
          <resource name="http_load">
              <current-load>
                  150
              </current-load>
              <target-load>
                  2000
              </target-load>
              <capacity>
                  5000
              </capacity>
          </resource>
          <resource name="ftp_load">
              <current-load>
                  321
              </current-load>
              <target-load>
                  2000
              </target-load>
              <capacity>
                  5000
              </capacity>
           </resource>
       </datacenter>
      </load-object>

Non-XML load objects

Non-XML load objects are simpler but less flexible than XML load objects. A non-XML load object reports only the current load on a resource. The target load and capacity are computed based on traffic weights you configure in the portal. See Computed Targets in Add traffic targets to property. The load object itself can be almost entirely free-form, since GTM needs only one number, that is the current load. You just configure the prefix string that GTM should expect to find before the number.

The syntax of the load object for these properties with manually set targets mode is simpler than that for a dynamic targets load balancing mode.

  • Weighted Random Load Balancing

  • Weighted Random Load Balancing with Data Center Stickiness

  • Performance-Based Load Balancing

  • Performance-Based Load Balancing with Load Feedback (targets computed from version weights)

  • Performance-Based Load Balancing with Load Feedback Based on Liveness Test Download Scores (deprecated)

The load object file takes any format you want. On the Resource tab in the Load Leader String text box, you simply supply an ASCII string. GTM assumes that the current load is the first number to appear after this text, minus any white space there is. For example, if the Load Leader String is set to TheLoadIs:, and your load object contains this string.

This is a load object. TheLoadIs:497. This is the end of the load object.