Three decisions come before the transport: what object the alert describes, which direction and scope it covers, and how fresh the reading has to be. SNMP, an HTTPS API and an application probe can all report something about a VPN, and they will not report the same thing. Swapping protocols without settling those three only changes where the confusion gets collected. The object and the meaning of the alert are the design; the protocol is delivery.

A dashboard that turns four different observations into one green icon has already made that decision badly.

What Should the Alert Actually Mean?

It could mean a peer cannot authenticate, that no protected data state exists, that a route points somewhere wrong, or that an application cannot finish its work. Every one of those has its own owner, its own first check and its own false-positive rate. A peer that cannot authenticate is an identity problem, a missing security association is a protocol-state problem, a route is a configuration problem, and an application failure might be none of those. Decide which one the alert is for before picking a collector.

Write it as a sentence the on-call engineer can act on. If the sentence needs two objects, that is two alerts, not one that is half-right.

A TCP Table Describes TCP

RFC 4022 specifies tcpConnectionTable, whose rows describe established TCP connections, keyed by address type, address and port at both ends. Rows vanish when the connection closes, and listening sockets appear in a different table. Running a VPN on the same box does not turn a TCP table into an inventory of IPsec security associations. It may describe a management session, an application flow, or a tunnel carried over TCP, and the row itself will not tell you which.

Interface counters carry the same ambiguity at a coarser level: bytes on an interface aggregate every peer and every flow using it.

Build a Small Observation Contract

For each metric, record the supported object or API field, the owning device and software release, the peer or service identifier, the direction, the collection time and the expected refresh behaviour. Then use the gateway's documented association or session view for protocol state, the routing table for path state, and a narrow permitted request for application state. A working management endpoint proves the management endpoint works and nothing about the application behind it.

If the installed agent lacks the required objects, choose another explicitly supported read-only interface. Inventing an OID, reading a generic TCP count as a tunnel count, or expecting an old vendor API to survive unchanged in a sibling product are all dead ends.

Stale Data Is Not a Tunnel Failure

A collection timeout, an expired credential or a changed API path produces missing telemetry. That is a monitoring failure and a different incident from a tunnel that dropped. Record which observation went stale and when, so the operator gets a meaningful first check instead of a tunnel reset. Treating every timeout as a VPN outage trains people to ignore both.

Keep collection permissions narrow as well. An interface that can change configuration or clear sessions carries a privilege boundary a monitoring job should not inherit, and a read-only account is usually sufficient.

The useful design names the object, the meaning and the freshness requirement. Protocol choice follows from those, not the other way around.

Qillqakuna t'inkisqa