VCF SD-WAN Insight: Overview

Version: 2026.1.1.0

This page is the technical reference for VCF SD-WAN Insight. Everything described here appears in Aria Operations once an adapter instance has been configured and a collection has completed. Two vendors are supported: Cisco Catalyst SD-WAN and Fortinet SD-WAN. The object model is shared across vendors and carries no vendor names; where a field exists for one vendor only, or is empty for another, the tables say so. The complete attribute list per object kind lives in the Metrics Reference; this page describes behaviour, content and topology.

Cisco Catalyst SD-WANFortinet SD-WAN
SD-WAN DevicevManage / vSmart / vBondFortiManager
SD-WAN NodevEdge / cEdge edge routerFortiGate
SD-WAN LinkTLOC / transport interfaceSD-WAN member / WAN interface
SD-WAN Locationderived from site-id / site-namenot created - the inventory has no site identifier
APIvManage REST (/dataservice/...)FortiManager JSON-RPC (POST /jsonrpc), FortiGate data via exec /sys/proxy/json
endpointCisco Catalyst SD-WANFortinet SD-WAN

Dashboards

All dashboards live in a single folder, VCF SD-WAN Insight. Every widget is vendor neutral: it references only object kinds and metrics emitted by both collection paths, so the same dashboard renders Cisco Catalyst SD-WAN and Fortinet SD-WAN objects side by side. At large scale (hundreds of links, dozens of nodes) the entry point is a list, a scoreboard or a heat map scoped to one grouping axis, never an unbounded aggregation of the whole estate.

Five dashboards are shipped, generated by hack/gen_dashboards.py. Every inner name starts with VCF followed by a space.

VCF SD-WAN Health - the whole-pack status check:

  • SD-WAN Device Status - a scoreboard of the device resource metrics: CPU usage, disk usage and memory usage.
  • SD-WAN Nodes - Color: Health (%) | Size: Availability - heat map whose colour is the Aria health badge on 0..100 and whose size is the binary availability flag.
  • SD-WAN Links - Color: Health (%) | Size: Availability - the same two axes over the WAN Links.
  • SD-WAN Object Relationship - the relationship view, driven by the heat maps above, so clicking a node or a link cell drills the tree into that object.

VCF SD-WAN Node State - one site's routers at a glance:

  • SD-WAN Nodes - Color: Availability | Size: Uptime - the nodes grouped by their SD-WAN Device; a 0..1 availability scale, red at 0 (down), yellow at 0.5, green at 1 (up), sized by system|uptime.
  • SD-WAN Nodes - Color: CPU Usage (%) | Size: Memory Usage (%) - green at 0 %, yellow at 50 %, red at 100 % and above.
  • SD-WAN Object Relationship - the relationship view, driven by both heat maps.

Both heat maps carry relationshipMode [1, -1, 0] at depth 10 and both drive the relationship view. Only the SDWANNode kind is declared as the heat-map bubble, grouped by its SDWANDevice: SD-WAN Locations and WAN Links appear in the relationship view, never as bubbles, because a link count per node would overwhelm the widget.

VCF SD-WAN Location - the per-site view on a Cisco deployment that carries sites:

  • SD-WAN Locations Availability - a scoreboard of inventory|node_availability_pct, the average availability of the reporting edge routers of each site.
  • SD-WAN Nodes - the node list with availability, CPU, memory, disk, BFD sessions up (Cisco), temperature and reboot count (Cisco).
  • SD-WAN Links - the link list with circuit description, ping, jitter, packet loss, throughput and flaps.

VCF SD-WAN Insight Alert List - the alert triage view:

  • Active SD-WAN Alerts - active alerts (status 0).
  • Historical SD-WAN Alerts - resolved alerts (status 2).
  • SD-WAN Object Relationship - both lists wire the selected alert into the relationship view.

The alert lists are filtered by adapter kind and by alert status only - [0] for active, [2] for resolved - with no resource-kind filter, so any alert the pack raises appears regardless of the object it is attached to. In practice that means the three kinds that carry alert definitions: SDWANDevice, SDWANNode and SDWANLink. A Location raises no alert of its own, because the availability of a site is already expressed by the nodes behind it. This file is pinned by a sha256 test and must not change.

VCF SD-WAN Insight - the standard self-service view of the adapter itself, present on every Indevops Management Pack:

  • Object List - every object produced by the adapter, per kind, with its health badge.
  • Adapter Performance - the adapter-level collection metrics.
  • Metric Picker and Metric Chart - free exploration of any metric of any collected object.

Reports

The reports deliver the availability and transport quality figures used as service level evidence for the WAN service. Both vendors are included in the same reports, since they share the object kinds and metrics.

Sixteen reports are generated by hack/gen_reports.py into the single content/reports/content.xml: four object kinds (Device, Node, Link, Location) x four windows (24 h, 7 d, 30 d, 365 d). The window is the view's own time range combined with the AVG rollup - no super metric is involved, because the Aria formula language cannot aggregate over time.

Device reports - SD-WAN Device - Availability and SLA per window: management IP, vendor, model, SLA level, average availability, CPU, memory and disk usage. Rows group by SDWANDevice.

Node reports - SD-WAN Node - Availability and SLA per window: SLA level, average availability, CPU and memory usage. Rows group by SDWANDevice.

Link reports - SD-WAN Link - Availability and SLA per window: location, circuit description, SLA level, average availability, download / upload / aggregate utilization, ping, jitter and packet loss. Rows group by SDWANNode, so every link of one site appears together. The reports select only links that actually carry paths - a numeric inventory|path_count > 0 filter - because a physical interface with no overlay path is inventory, not a service level subject.

Location reports - SD-WAN Location - Availability and SLA per window: site name, site ID, average availability, node count, nodes up, nodes down and the node availability average. Rows group by SDWANLocation. These exist only on a Cisco deployment that carries sites.

The availability column is availability|availability_pct (0 or 100) and carries the display label Availability; Aria Operations appends the (%) from the percent unit, so the label deliberately contains no unit. The binary availability sample is not a report column: it is the raw state the adapter derives from the vendor API and the value the availability symptoms match on.

Custom Groups

Custom groups organise the inventory without changing what is collected. Membership is derived from the object kind and, where needed, a property rule, so the groups work for both vendors.

A rule must name a top-level property. Aria Operations does not resolve the Group|key form inside a custom group rule, so a rule written against a grouped property never matches and the group silently falls back to "all members". That is why sla_level, link_type, link_role, site_id, site_name and location are defined directly on the object instead of inside a group.

A rule must also use the shape Aria Operations itself exports for a property rule:

{"ruleType": "StringMetricPropertyRule", "ruleMetricKey": "link_type",
 "isProperty": true, "ruleStringOperator": "EQUALS", "ruleStringValue": "MPLS"}

The legacy {"ruleType": "PropertyRule", "rulePropertyName": "link_type", ...} form imports without an error but never matches, so the group resolves to no members and the rule has to be recreated by hand in the UI. rulePropertyName is not part of the schema; the property key belongs in ruleMetricKey.

Custom Group NameMembers
Network WorldThe three alert-carrying kinds of this Management Pack - SD-WAN Device, SD-WAN Node and WAN Link - in one group. The shared network category convention with the other Indevops network Management Packs
SDWAN DevicesEvery 'SD-WAN Device'
SDWAN NodesEvery 'SD-WAN Node'
SDWAN LocationsEvery 'SD-WAN Location'
SDWAN LinksEvery 'WAN Link', regardless of transport type. The base group of the link hierarchy, mirroring SDWAN Nodes
SDWAN Links - MPLSWAN Links whose link_type is MPLS
SDWAN Links - InternetWAN Links whose link_type is Internet
SDWAN Links - Biz InternetWAN Links whose link_type is Biz Internet
SDWAN SLA 1Nodes and links whose sla_level is 1 - the 8 hour unavailability budget per 30 days
SDWAN SLA 2Nodes and links whose sla_level is 2 - the 4 hour unavailability budget per 30 days

The two SLA groups rule on the same property with different values, so they can never resolve to the same member set. An object that is neither level 1 nor level 2 is in neither group.

The three link-type groups only have members once link_type carries the matching value. The automatic classifier needs a transport token in the transport colour, the member zone, the interface name or the alias. A Fortinet fleet whose SD-WAN member interfaces are named WAN_A1, WAN_A2, WAN_B1 carries none of them - the live member payload has no zone and the interface alias is empty - so every link resolves to Other and the three groups stay empty. Declare the mapping with the Link type overrides adapter instance parameter; see Deployment.

Metric groups

Every object kind is declared with a fixed set of groups, so the object detail view has the same shape regardless of vendor. The groups are listed per kind in the Metrics Reference; in short:

KindGroups
SD-WAN LocationIdentity, Availability, Inventory
SD-WAN DeviceIdentity, Platform, Status, System Resources, Control Plane, Availability, Health
SD-WAN NodeIdentity, Platform, Status, Location, System Resources, Control Plane, BFD Sessions, Sessions, Hardware Environment, Availability, Health
SD-WAN LinkIdentity, Transport, Status, Capacity, Inventory, Utilization, Throughput, Errors and Drops, Stability, Quality, Traffic, Availability

Inventory on the link carries the path counters, Stability carries the flap and tunnel-transition figures, and Quality / Traffic carry the aggregates of the tunnels the link transports. Sessions and Hardware Environment on the node are Fortinet and Cisco respectively: the other vendor emits no point into them rather than a zero.

Collection mode and vendor selection

Vendor is an instance-level decision and is emitted as a constant endpoint property on every object; no per-object detection is performed.

Instance parameter vendorEmitted endpointBehaviour
(empty) or Cisco Catalyst SD-WANCisco Catalyst SD-WANCisco collection path. An empty value keeps pre-existing Cisco instances working unchanged
Fortinet SD-WANFortinet SD-WANFortinet collection path

An adapter instance is therefore configured for exactly one vendor; a mixed estate is covered by one instance per vendor, and both appear side by side in the shared dashboards, groups and reports.

The object model is shared: no resource kind, group, identifier, attribute or unit is added, renamed or removed for Fortinet. Fortinet values land in the same keys as Cisco values, and the shipped content is inherited unchanged. Fortinet objects are told apart from Cisco objects only by endpoint = Fortinet SD-WAN.

Where Fortinet has no value for a metric, the adapter emits no data point at all - never a zero. Metrics with no Fortinet source (OMP peers, BFD session counters, TLOC utilization, vQoE score, transport encapsulation, flap counters, certificate metrics, temperature, disk usage, error and drop counters) are therefore simply absent on Fortinet objects, and any alert that depends on them stays quiet instead of firing falsely. The mirror case holds for the Fortinet-only metrics: session count, session setup rate, member cost / priority, and the memory total / free pair.

GetDescribeVersion is 27 for this release. It increases on every schema or collection change, because Aria Operations only replaces an installed adapter when the describe version increases - shipping a corrected collection under an unchanged version leaves the old binary running. The notable steps are: version 15 added the SD-WAN Location kind and made a site the second parent of every node; 16 and 17 settled the binary availability rule of the Location (at least one reporting node available) and added its inventory counters; 18 added the top-level location property on links; 19 added the link path counters; 21 added the "SD-WAN Link has no working path" alert; 23 removed the SDWANPath kind and aggregated its metrics onto the link; 25 to 27 moved ten conditions from alert definitions to adapter events and settled the Fortinet field mapping.

Relationships

Diagram illustrating the connections between objects, referred to as relationships.

Relations between collected objects

The relationships define how controllers, edge routers, sites and transport links are interconnected. The shape is identical for both vendors, with the site layer present on Cisco only.

VCFSdwanInsight Adapter Instance
 |
 +-- SD-WAN Device                    SDWANDevice
 |     Cisco:    vmanage / vsmart / vbond
 |     Fortinet: FortiManager
 |
 +---- SD-WAN Location                SDWANLocation      (Cisco only, when the inventory carries sites)
 |
 +------ SD-WAN Node                  SDWANNode
 |         Cisco:    vEdge / cEdge edge router
 |         Fortinet: FortiGate
 |
 +-------- SD-WAN Link                SDWANLink
             Cisco:    TLOC / transport interface
             Fortinet: SD-WAN member / WAN interface

Parent/child nesting:
  Adapter Instance -> SD-WAN Device -> SD-WAN Node -> SD-WAN Link
  SD-WAN Location  -> SD-WAN Node   (second parent, next to the device)
  SD-WAN Device    -> SD-WAN Link   (in addition to the node parent)
  • The adapter instance is the root and the parent of every SD-WAN Device. For Cisco, the device with role = vmanage is the SD-WAN Manager the adapter authenticated against; for Fortinet, the single FortiManager is the device.
  • The device that is the API entry point is the parent of every SD-WAN Node. If the inventory contains no entry-point device, the nodes are attached to the adapter instance and a warning is logged.
  • A SD-WAN Location is a second parent of every node of its site on a Cisco deployment that carries sites. The spec requires Device -> Node, so that relation is kept unchanged; an operator simply gains a second way in. A node whose device carries no site keeps only its device parent, and a Fortinet instance creates no Location at all.
  • A SD-WAN Link is a child of the node whose uuid matches the link's device_uuid, and also a child of the SD-WAN Device of the same adapter instance. Cisco vpn_id is the VPN identifier; Fortinet uses the VDOM (default 0).
  • The link publishes site_id, site_name and location inherited from its parent device, so a link can be filtered or grouped by site without walking the tree. The location value is the identical string the Location object uses as its name.

External relations created by this Management Pack

ObjectRelationMatching
VMWARE / VirtualMachineparent of SD-WAN Device and SD-WAN Nodematched on system_ip first, on lower-cased host name second

The external keys are built with ExternalObjectKey(adapterKind, resourceKind, name, identifiers) and carry ClearPolicyNone, so this Management Pack never prunes relationships it does not own on the vSphere side. Failure of the Aria Operations query set is non-fatal: the collection still succeeds, only the virtual machine relations are skipped.

External relation created by another Management Pack

The VCF IPAM Insight (phpIPAM) Management Pack is expected to relate its IP Address objects to two properties of this Management Pack, so an operator can walk from an address to the device or router that owns it:

TargetPropertyNotes
SD-WAN Nodemanagement_ipTop level on purpose. Must not be renamed or moved into a group - the pattern is anchored, so a grouped key would silently stop matching
SD-WAN Deviceidentity|system_ipThe management address of the appliance, labelled Management IP in the UI

The relation is created and owned by the phpIPAM Management Pack, not by this one: nothing is configured here, and this pack never prunes a relationship it does not own. Whether the relation appears depends on phpIPAM carrying a rule for the VCFSdwanInsight adapter kind and these two resource kinds. The diagram shows the intended topology; a deployment that needs the relation must confirm it is in place on the phpIPAM side.

Collected objects

The four object kinds are:

ObjectKeyRepresents
SD-WAN LocationSDWANLocationA site: a set of edge routers at one physical location
SD-WAN DeviceSDWANDeviceThe management / control plane appliance
SD-WAN NodeSDWANNodeAn edge router at a customer site
SD-WAN LinkSDWANLinkA transport interface of an edge router - the carrier circuit

Each object's identifiers, properties, metrics, units and vendor sources are listed in full in the Metrics Reference. Two decisions are worth stating here because they shape the whole model:

There is no tunnel object. An overlay tunnel is not a first class object in this Management Pack. The measurement of every tunnel the link transports is aggregated onto that link - ping, jitter, packet loss as means over the live legs, octets as sums, the SLA-violation count as a counter - and the path counters path_count / path_up_count say how many legs the link has. This keeps the object graph at the size an operator actually navigates (sites, devices, routers, circuits) instead of one object per BFD session. See Tunnel aggregates on the link for the exact aggregation per metric.

Availability is a pair. Every kind declares availability|availability as a 0/1 sample and availability|availability_pct as the 0/100 projection. Aria Operations does not multiply a 0/1 sample by 100 for a percent unit, so the two are separate metrics that live in the same folder. Alerting matches the binary sample; the reports render the percent projection. On the Location the binary sample has a site-level meaning: 1 while at least one reporting edge device of the site is available, because a site is a set of HA pairs and one dead router does not make the site unavailable. The granular question "how degraded is the site" is answered by inventory|node_availability_pct and the nodes_up / nodes_down / nodes_total_reporting split, not by the binary sample.

Administrative and operational status

status|operational_status uses the same Up / Down vocabulary on SD-WAN Link, SD-WAN Node and SD-WAN Device, because the shipped "Link is down" alert matches that exact string. An unknown state emits no property rather than a fabricated value. admin_status stays declared for the vendors that actually report an administrative state; a vendor that does not report one writes no point at all rather than mirroring operational_status.

Objectoperational_status sourceadmin_status source
SDWANLinkCisco interface oper-status; Fortinet member linkCisco interface admin-status; intentionally omitted for Fortinet - the member state is a single up/down signal and is already operational_status
SDWANNode (Cisco)/dataservice/device reachabilityintentionally omitted - the API exposes no administrative enable/disable state
SDWANNode (Fortinet)/dvmdb/device conn_status (numeric enum)intentionally omitted - /dvmdb/device has no administrative enable/disable field
SDWANDevice (Cisco)/dataservice/device reachabilityintentionally omitted - same reason as the node
SDWANDevice (Fortinet)Up when the FortiManager answered the system status RPC, Down otherwiseintentionally omitted - no administrative state over JSON-RPC

Alerts

The Management Pack ships 24 alert definitions over 30 symptom definitions and 24 recommendations, all defined in the single content/alertdefs/alertDefinitions.xml: 9 on SDWANDevice, 11 on SDWANNode and 4 on SDWANLink. All alerts are symptom based and the thresholds below are the shipped defaults, which can be adjusted per environment through a VMware Aria Operations policy. They are shared by both vendors: the Fortinet collection path normalises the status vocabulary (reachable, Up / Down, in_sync / out_of_sync) so these conditions evaluate correctly on Fortinet objects.

Alerting is a two stage escalation ladder, so the ladder stays visible in the Aria Operations UI:

  1. Instant stage - Warning. An object that becomes unreachable or down raises Controller is unreachable, Node is unreachable or Link is down on the first collection cycle.
  2. Sustained stage - Critical. An object that stays unavailable for its whole SLA budget raises SD-WAN Node|Link unavailable continuously for 8 hours (SLA level 1) or … for 4 hours (SLA level 2).

The instant stage is deliberately a warning: a critical from the first cycle would already put the object in the critical bucket, and the sustained-outage alert could then no longer change what the operator sees. Only the sustained stage is critical, and it is the one that represents an actual SLA breach.

The delay of the sustained stage lives in the symptom waitCycle, because a waitCycle counts collection cycles, not wall clock time:

AlertAvailability symptom waitCycleWall clock delay at a 5 minute interval
SD-WAN Node unavailable continuously for 8 hours968 h
SD-WAN Node unavailable continuously for 4 hours484 h
SD-WAN Link unavailable continuously for 8 hours968 h
SD-WAN Link unavailable continuously for 4 hours484 h

The wall clock delay therefore depends on the collection interval of the adapter instance: an instance collecting every minute reaches the 8 h stage after 96 minutes, one collecting every 15 minutes after 24 h. The SLA level itself is resolved per object from sla_default_level / sla_overrides, and the alert additionally requires the matching sla_level property, so a level 1 object only ever raises the 8 h alert and a level 2 object only the 4 h one. The availability condition matches availability|availability == 0, the binary sample the adapter writes every cycle for every discovered object.

SD-WAN Device

Alert definitionSeverityTrigger
Controller is unreachableWarningReachability is not reachable (instant stage of the ladder)
Controller CPU usage is highWarningCPU Usage >= 70 %
Controller CPU usage is critically highCriticalCPU Usage >= 80 %
Controller memory usage is highWarningMemory Usage >= 70 %
Controller memory usage is critically highCriticalMemory Usage >= 80 %
Controller disk usage is highWarningDisk Usage >= 70 %
Controller disk usage is critically highCriticalDisk Usage >= 80 %
Controller certificate is about to expireWarningCertificate Days To Expiry <= 30
Controller certificate expires shortlyCriticalCertificate Days To Expiry <= 7

SD-WAN Node

Alert definitionSeverityTrigger
Node is unreachableWarningReachability is not reachable (instant stage of the ladder)
Node CPU usage is highWarningCPU Usage >= 70 %
Node CPU usage is critically highCriticalCPU Usage >= 80 %
Node memory usage is highWarningMemory Usage >= 70 %
Node memory usage is critically highCriticalMemory Usage >= 80 %
Node disk usage is critically highCriticalDisk Usage >= 80 %
Node temperature is highWarningTemperature >= 60 degrees Celsius
Node temperature is critically highCriticalTemperature >= 70 degrees Celsius
Node certificate is about to expireWarningCertificate Days To Expiry <= 30
SD-WAN Node unavailable continuously for 8 hoursCriticalAvailability == 0 for 96 cycles (8 h at 5 min) and sla_level == 1
SD-WAN Node unavailable continuously for 4 hoursCriticalAvailability == 0 for 48 cycles (4 h at 5 min) and sla_level == 2

There is deliberately no Node disk usage is high warning: the disk signal of an edge router is coarse, and a two-stage ladder on it produced warning noise without a critical follow-up. The critical stage at 80 % is kept.

Alert definitionSeverityTrigger
Link is downWarningOperational Status is not Up and link_role != backup and the link carries at least one path (instant stage of the ladder)
SD-WAN Link has no working pathWarninginventory|path_up_count == 0 and inventory|path_count > 0 and link_role != backup
SD-WAN Link unavailable continuously for 8 hoursCriticalAvailability == 0 for 96 cycles (8 h at 5 min), sla_level == 1, link_role != backup and inventory|path_count > 0
SD-WAN Link unavailable continuously for 4 hoursCriticalAvailability == 0 for 48 cycles (4 h at 5 min), sla_level == 2, link_role != backup and inventory|path_count > 0

All three link alerts require a known link_role that is not backup, so a member the SD-WAN policy declares a standby - cost > 0 or priority > 1 - raises neither a warning nor a critical. On Cisco every link is written as primary, so that condition is always satisfied there. All three additionally require inventory\|path_count > 0: a physical interface that transports no overlay path is inventory, not a monitored service, so it raises nothing at all.

SD-WAN Link has no working path covers the case the other three miss: the interface is up (availability = 1, so no down alert) but every overlay path over it is down (path_up_count = 0 while path_count > 0). Before this alert existed that state raised nothing at all.

The three utilization metrics carry no alert definition. The adapter emits a utilization point only when a link capacity resolves (an explicit link_capacity_overrides entry, the link_capacity_default parameter, or an interface speed reported by the API); on a deployment without any of those the metric never exists. An alarm bound to a metric that is legitimately absent could not be trusted, so utilization is reported and rendered in reports and dashboards but never alerted on. The same reasoning removed the flap alert: the flap counter is not referenced by any alert definition.

Every alert definition ships with a recommendation describing the first remediation step, which is shown together with the alert in VMware Aria Operations.

A metric that could not be read from the management platform produces no data point at all rather than a zero, so an alert never fires because of an unavailable API endpoint. This is what keeps the temperature, BFD, certificate and error conditions quiet on platforms that have no such sensor or session, and the Fortinet "not collected" metrics from ever raising an alert.

Events

The Management Pack emits ten informational conditions as events, not as alerts. They describe what a link or a node is doing right now - jitter, loss, error counters, configuration drift, BFD and control-connection counts - and none of them is actionable enough to justify paging somebody. Each was previously an alert definition and is now emitted from the collection cycle that writes the underlying metric. The error condition covers both directions, so the ten conditions produce the eleven distinct event messages in the table below.

Event messageObjectConditionThreshold
Link jitter <x> ms is above 50 ms (critical)WAN Linkquality|jitter>= 50 ms
Link jitter <x> ms is above 30 msWAN Linkquality|jitter>= 30 ms
Link packet loss <x> % is above 20 % (critical)WAN Linkquality|packet_loss>= 20 %
Link packet loss <x> % is above 10 %WAN Linkquality|packet_loss>= 10 %
Link has <n> receive errors, above 100000WAN Linkerrors|rx_errors> 100 000
Link has <n> transmit errors, above 100000WAN Linkerrors|tx_errors> 100 000
Node configuration is out of syncSD-WAN Nodestatus|template_status== out_of_sync
Node has <n> BFD sessions downSD-WAN Nodebfd|bfd_sessions_down> 0
Node has no BFD sessions upSD-WAN Nodebfd|bfd_sessions_up== 0
Node has no control connectionsSD-WAN Nodecontrol_plane|control_connections== 0
Controller has no control connectionsSD-WAN Devicecontrol_plane|control_connections== 0, and only for a non-Cisco device

The emission rules are deliberately conservative:

  • an event is emitted only when the underlying metric is actually present in the current cycle. A missing measurement is not a condition, so an absent quality sample raises nothing;
  • the link quality and error events keep the link_role != backup gate their former alerts carried: a backup link is down (and therefore lossy) by design and must not narrate its normal state;
  • the message names the metric and the measured value, so an operator reading the event list knows what triggered it without opening the object;
  • the controller event is scoped in code to a non-Cisco device, because vManage is itself the controller and has no outgoing control connections by definition. The condition applies to the FortiManager, whose control_connections is the number of connected FortiGates;
  • only the receive branch of the error event is emitted when both directions exceed the threshold. One event states which side is bad; emitting two would repeat "this link is failing" twice per cycle.

Every event is INFO criticality and auto-cancels after three missing cycles, so an event disappears by itself once the condition stops being true - the adapter never has to send an explicit cancel.

The two jitter thresholds and the two packet-loss thresholds of one metric are evaluated independently: a link at 55 ms of jitter crosses both 50 ms and 30 ms, so both the critical and the elevated event are emitted, preserving the two-stage reading of the former alert ladder.

SLA budget configuration

sla_level1_hours (default 8), sla_level2_hours (default 4) and sla_window_days (default 30) make the availability budget configurable, so another customer with a different monthly budget does not need a rebuild. sla_allowed_downtime_hours is the configured value of the level, and sla_availability_threshold is derived as (1 - hours / (windowDays * 24)) * 100, rounded to two decimals. With the defaults this is exactly 8 / 4 and 98.89 / 99.44, i.e. the shipped behaviour. The reports show the threshold next to the measured availability, and the same budget is what the sustained stage of the alerting ladder waits for: 8 h / 4 h, expressed as 96 / 48 collection cycles.

Changing the two budget values changes what the reports compare against and what sla_level an object carries, but does not re-scale those waitCycles - they are fixed at the 8 h / 4 h default expressed in five minute cycles, so an instance whose collection interval is not five minutes already sees a different wall clock delay (the table above).