From 9ab6fcc472eda4070a4b3b8f79c2445793d429e0 Mon Sep 17 00:00:00 2001 From: mmmray <142015632+mmmray@users.noreply.github.com> Date: Tue, 20 Aug 2024 10:53:03 -0500 Subject: [PATCH] Add observatory.md (en) --- docs/en/config/observatory.md | 85 +++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 docs/en/config/observatory.md diff --git a/docs/en/config/observatory.md b/docs/en/config/observatory.md new file mode 100644 index 000000000..a884a2930 --- /dev/null +++ b/docs/en/config/observatory.md @@ -0,0 +1,85 @@ +# Connection Monitoring + +The connection monitoring component uses HTTPing to detect the connection +status of outbound proxies. The monitoring results can be used by other +components, such as load balancers. There are currently two options: +[observatory](#observatoryobject) (background connection monitoring) and +[burstObservatory](#burstobservatoryobject) (concurrent connection monitoring). +You can choose one of them as needed. + +## ObservatoryObject +```json +{ + "subjectSelector":[ + "outbound" + ], + "probeUrl": "https://www.google.com/generate_204", + "probeInterval": "10s", + "enableConcurrency": false +} +``` + +> `subjectSelector`: \[ string \] + +An array of strings, where each string is used to match the prefix of outbound proxy identifiers. Among the following outbound proxy identifiers: `["a", "ab", "c", "ba"]`, `"subjectSelector": ["a"]` will match `["a", "ab"]`. + +> `probeUrl`: string + +The URL used to detect the connection status of the outbound proxy. + +> `probeInterval`: string + +The interval at which probes are initiated. The time format is a number followed by a unit, such as `"10s"`, `"2h45m"`. Supported time units include `ns`, `us`, `ms`, `s`, `m`, `h`, corresponding to nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively. + +> `enableConcurrency`: true | false + +- `true`: Concurrently probe all matching outbound proxies, then pause for the time set by `probeInterval`. +- `false`: Probe each matching outbound proxy one by one, pausing for the time set by `probeInterval` after probing each one. + +## BurstObservatoryObject +```json +{ + "subjectSelector":[ + "outbound" + ], + "pingConfig": {} +} +``` + +> `subjectSelector`: \[ string \] + +An array of strings, where each string is used to match the prefix of outbound proxy identifiers. Among the following outbound proxy identifiers: `["a", "ab", "c", "ba"]`, `"subjectSelector": ["a"]` will match `["a", "ab"]`. + +> `pingConfig`: [PingConfigObject](#PingConfigObject) + + +### PingConfigObject +```json +{ + "destination": "https://connectivitycheck.gstatic.com/generate_204", + "connectivity": "", + "interval": "1h", + "sampling": 3, + "timeout": "30s" +} +``` + +> `destination`: string + +The URL used to detect the connection status of the outbound proxy. This URL should return an HTTP 204 success status code. + +> `connectivity`: string + +The URL used to check local network connectivity. An empty string means that local network connectivity is not checked. + +> `interval`: string + +Within the specified time, probe all matching outbound proxies, probing each proxy `sampling + 1` times. The time format is a number followed by a unit, such as `"10s"`, `"2h45m"`. Supported time units include `ns`, `us`, `ms`, `s`, `m`, `h`, corresponding to nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively. + +> `sampling`: number + +The number of recent probe results to retain. + +> `timeout`: string + +The probe timeout period. The format is the same as the `interval` above.