health-proto
Retrieves information concerning the monitoring configuration for a specific CDN.
- Auth. Required
Yes
- Roles Required
None
- Response Type
Object
Name | Description |
---|---|
name | The name of the CDN for which monitoring configuration will be fetched |
- 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 <cache-group-latitude>
as a floating-point number- longitude
This
Cache Group's longitude <cache-group-longitude>
as a floating-point number- name
A string that is this
Cache Group's name <cache-group-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- status
The
Delivery Service
's status- 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- xmlId
A string that is the
Delivery Service's XMLID <ds-xmlid>
- profiles
An array of the
Profiles
in use by thecache servers
andDelivery Services
belonging to this CDN- name
A string that is the
Profile's Name <profile-name>
- parameters
An array of the
Parameters
in thisProfile
that relate to monitoring configuration. This can benull
if the servers using thisProfile
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"
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 <profile-type>
- trafficMonitors
An array of objects representing each Traffic Monitor that monitors this CDN (this is used by Traffic Monitor's "peer polling" function)
- fqdn
An
FQDN (Fully Qualified Domain Name)
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
profile-name
of theProfile
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 thiscache server
belongs- fqdn
An
FQDN (Fully Qualified Domain Name)
that resolves to thecache 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
profile-name
of theProfile
assigned to thiscache server
- status
The status of the
cache server
- type
A string that names the
Type
of thecache server
- should (ideally) be eitherEDGE
orMID
- 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 ifmonitor
is not true for this interface.
health-proto
- monitor
A boolean which describes whether or not this interface should be monitored by Traffic Monitor for statistics and health consideration.
- mtu
The
MTU (Maximum Transmission Unit)
of this interface. If it isnull
, 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
.
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": {
"trafficServers": [
{
"profile": "ATS_EDGE_TIER_CACHE",
"status": "REPORTED",
"port": 80,
"intefaces": [
{
"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,
"intefaces": [
{
"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": [],
"config": {
"health.polling.interval": 6000,
"heartbeat.polling.interval": 3000,
"peers.polling.interval": 3000,
"tm.polling.interval": 2000
}
}}