cdns/{{name}}/configs/monitoring

See also

Health Protocol

GET

Retrieves information concerning the monitoring configuration for a specific CDN.

Auth. Required

Yes

Roles Required

None

Response Type

Object

Request Structure

Table 115 Request Path Parameters

Name

Description

name

The name of the CDN for which monitoring configuration will be fetched

Response Structure

cacheGroups

An array of objects representing each of the Cache Groups being monitored within this CDN

coordinates

An object representing the geographic location of this Cache Group

latitude

This Cache Group’s latitude as a floating-point number

longitude

This Cache Group’s longitude as a floating-point number

name

A string that is this Cache Group’s name

config

A collection of parameters used to configure the monitoring behaviour of Traffic Monitor

health.polling.interval

An interval in milliseconds on which to poll for cache statistics

heartbeat.polling.interval

An interval in milliseconds on which to poll for health statistics. If missing, defaults to health.polling.interval.

tm.polling.interval

The interval at which to poll for configuration updates

deliveryServices

An array of objects representing each Delivery Service provided by this CDN

hostRegexes

An array of strings which are the Delivery Service’s HOST_REGEXP-type regexes

status

The Delivery Service’s status

topology

A string that is the name of the Delivery Service’s Topology (if assigned one)

totalKbpsThreshold

A threshold rate of data transfer this Delivery Service is configured to handle, in Kilobits per second

totalTpsThreshold

A threshold amount of transactions per second that this Delivery Service is configured to handle

type

A string that is the Delivery Service’s type category ("HTTP" or "DNS")

xmlId

A string that is the Delivery Service’s XMLID

profiles

An array of the Profiles in use by the cache servers and Delivery Services belonging to this CDN

name

A string that is the Profile’s Name

parameters

An array of the Parameters in this Profile that relate to monitoring configuration. This can be null if the servers using this Profile cannot be monitored (e.g. Traffic Routers)

health.connection.timeout

A timeout value, in milliseconds, to wait before giving up on a health check request

health.polling.url

A URL to request for polling health. Substitutions can be made in a shell-like syntax using the properties of an object from the "trafficServers" array

health.threshold.availableBandwidthInKbps

The total amount of bandwidth that servers using this profile are allowed - across all network interfaces - in Kilobits per second. This is a string and using comparison operators to specify ranges, e.g. “>10” means “more than 10 kbps”

health.threshold.loadavg

The UNIX loadavg at which the server should be marked “unhealthy”

See also

uptime(1)

health.threshold.queryTime

The highest allowed length of time for completing health queries (after connection has been established) in milliseconds

history.count

The number of past events to store; once this number is reached, the oldest event will be forgotten before a new one can be added

type

A string that names the Profile’s Type

topologies

A map of Topology names to objects

nodes

An array of strings which are the names of the EDGE_LOC-type cache groups in the topology

trafficMonitors

An array of objects representing each Traffic Monitor that monitors this CDN (this is used by Traffic Monitor’s “peer polling” function)

cachegroup

The name of the Cache Group to which this Traffic Monitor belongs

fqdn

An FQDN that resolves to the IPv4 (and/or IPv6) address of the server running this Traffic Monitor instance

hostname

The hostname of the server running this Traffic Monitor instance

ip6

The IPv6 address of this Traffic Monitor - when applicable

ip

The IPv4 address of this Traffic Monitor

port

The port on which this Traffic Monitor listens for incoming connections

profile

A string that is the Name of the Profile assigned to this Traffic Monitor

status

The status of the server running this Traffic Monitor instance

trafficServers

An array of objects that represent the cache servers being monitored within this CDN

cachegroup

The Cache Group to which this cache server belongs

deliveryServices

An array of objects which contain the XML IDs of the delivery services to which this cache server is assigned (this field is omitted entirely if no delivery services are assigned to this cache server)

xmlId

A string which is the XML ID of the delivery service

fqdn

An FQDN that resolves to the cache server’s IPv4 (or IPv6) address

hashId

The (short) hostname for the cache server - named “hashId” for legacy reasons

hostName

The (short) hostname of the cache server

port

The port on which the cache server listens for incoming connections

profile

A string that is the Name of the Profile assigned to this cache server

status

The status of the cache server

type

A string that names the Type of the cache server - should (ideally) be either EDGE or MID

interfaces

A set of the network interfaces in use by the server. In most scenarios, only one will be present, but it is illegal for this set to be an empty collection.

ipAddresses

A set of objects representing IP Addresses assigned to this network interface. In most scenarios, only one or two (usually one IPv4 address and one IPv6 address) will be present, but it is illegal for this set to be an empty collection.

address

The actual IP address, including any mask as a CIDR-notation suffix

gateway

Either the IP address of the network gateway for this address, or null to signify that no such gateway exists

serviceAddress

A boolean that describes whether or not the server’s main service is available at this IP address. When this property is true, the IP address is referred to as a “service address”. It is illegal for a server to not have at least one service address. It is also illegal for a server to have more than one service address of the same address family (i.e. more than one IPv4 service address and/or more than one IPv6 address). Finally, all service addresses for a server must be contained within one interface - which is therefore sometimes referred to as the “service interface” for the server.

maxBandwidth

The maximum healthy bandwidth allowed for this interface. If bandwidth exceeds this limit, Traffic Monitors will consider the entire server unhealthy - which includes all configured network interfaces. If this is null, it has the meaning “no limit”. It has no effect if monitor is not true for this interface.

See also

Health Protocol

monitor

A boolean which describes whether or not this interface should be monitored by Traffic Monitor for statistics and health consideration.

mtu

The MTU of this interface. If it is null, it may be assumed that the information is either not available or not applicable for this interface.

name

The name of the interface. No two interfaces of the same server may share a name. It is the same as the network interface’s device name on the server, e.g. eth0.

#242 Response Example
HTTP/1.1 200 OK
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Set-Cookie, Cookie
Access-Control-Allow-Methods: POST,GET,OPTIONS,PUT,DELETE
Access-Control-Allow-Origin: *
Content-Type: application/json
Set-Cookie: mojolicious=...; Path=/; Expires=Mon, 18 Nov 2019 17:40:54 GMT; Max-Age=3600; HttpOnly
Whole-Content-Sha512: uLR+tRoqR8SYO38j3DV9wQ+IkJ7Kf+MCoFkcWZtsgbpLJ+0S6f+IiI8laNVeDgrM/P23MAQ6BSepm+EJRl1AXQ==
X-Server-Name: traffic_ops_golang/
Date: Wed, 14 Nov 2018 21:09:31 GMT
Transfer-Encoding: chunked

{ "response": {
    "topologies": {
        "example-topology": {
            "nodes": [
                "CDN_in_a_Box_Edge"
            ]
        }
    },
    "trafficServers": [
        {
            "profile": "ATS_EDGE_TIER_CACHE",
            "status": "REPORTED",
            "port": 80,
            "interfaces": [
                {
                    "ipAddresses": [
                        {
                            "address": "172.16.239.100",
                            "gateway": "172.16.239.0/24",
                            "serviceAddress": "true"
                        },
                        {
                            "address": "fc01:9400:1000:8::100",
                            "gateway": "fc01::",
                            "serviceAddress": "true"
                        }
                    ],
                    "name": "eth0",
                    "monitor": "true",
                    "mtu": 9000,
                    "maxBandwidth": 150
                }
            ],
            "cachegroup": "CDN_in_a_Box_Edge",
            "hostname": "edge",
            "fqdn": "edge.infra.ciab.test",
            "type": "EDGE",
            "hashid": "edge"
        },
        {
            "profile": "ATS_MID_TIER_CACHE",
            "status": "REPORTED",
            "port": 80,
            "interfaces": [
                {
                    "ipAddresses": [
                        {
                            "address": "172.16.239.120",
                            "gateway": "172.16.239.0/24",
                            "serviceAddress": "true"
                        },
                        {
                            "address": "fc02:9400:1000:8::100",
                            "gateway": "fc02::",
                            "serviceAddress": "true"
                        }
                    ],
                    "name": "eth0",
                    "monitor": "true",
                    "mtu": 9000,
                    "maxBandwidth": 150
                }
            ],
            "cachegroup": "CDN_in_a_Box_Mid",
            "hostname": "mid",
            "fqdn": "mid.infra.ciab.test",
            "type": "MID",
            "hashid": "mid"
        }
    ],
    "trafficMonitors": [
        {
            "profile": "RASCAL-Traffic_Monitor",
            "status": "ONLINE",
            "ip": "172.16.239.40",
            "ip6": "fc01:9400:1000:8::40",
            "port": 80,
            "cachegroup": "CDN_in_a_Box_Edge",
            "hostname": "trafficmonitor",
            "fqdn": "trafficmonitor.infra.ciab.test"
        }
    ],
    "cacheGroups": [
        {
            "name": "CDN_in_a_Box_Mid",
            "coordinates": {
                "latitude": 38.897663,
                "longitude": -77.036574
            }
        },
        {
            "name": "CDN_in_a_Box_Edge",
            "coordinates": {
                "latitude": 38.897663,
                "longitude": -77.036574
            }
        }
    ],
    "profiles": [
        {
            "name": "CCR_CIAB",
            "type": "CCR",
            "parameters": null
        },
        {
            "name": "ATS_EDGE_TIER_CACHE",
            "type": "EDGE",
            "parameters": {
                "health.connection.timeout": 2000,
                "health.polling.url": "http://${hostname}/_astats?application=&inf.name=${interface_name}",
                "health.threshold.availableBandwidthInKbps": ">1750000",
                "health.threshold.loadavg": "25.0",
                "health.threshold.queryTime": 1000,
                "history.count": 30
            }
        },
        {
            "name": "ATS_MID_TIER_CACHE",
            "type": "MID",
            "parameters": {
                "health.connection.timeout": 2000,
                "health.polling.url": "http://${hostname}/_astats?application=&inf.name=${interface_name}",
                "health.threshold.availableBandwidthInKbps": ">1750000",
                "health.threshold.loadavg": "25.0",
                "health.threshold.queryTime": 1000,
                "history.count": 30
            }
        }
    ],
    "deliveryServices": [
        {
            "xmlId": "example-ds",
            "totalTpsThreshold": 0,
            "status": "REPORTED",
            "totalKbpsThreshold": 0,
            "type": "DNS",
            "topology": "example-topology",
            "hostRegexes": [
                ".*\\.example-ds\\..*"
            ]
        }
    ],
    "config": {
        "health.polling.interval": 6000,
        "heartbeat.polling.interval": 3000,
        "peers.polling.interval": 3000,
        "tm.polling.interval": 2000
    }
}}