You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: pipeline/processors/tda.md
+13-13Lines changed: 13 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -112,7 +112,7 @@ Internally, quantile selection is handled by `tda_choose_threshold_from_dist`, w
112
112
113
113
### 5. Persistent Homology through Ripser
114
114
115
-
Once the compressed lower-triangular distance matrix is built, it is passed to a thin wrapper around **Ripser**, a well-known implementation of Vietoris–Rips persistent homology:
115
+
Once the compressed lower-triangular distance matrix is built, it is passed to a thin wrapper around **Ripser**, a well-known implementation of Vietoris-Rips persistent homology:
116
116
117
117
1.**Compression and C API**
118
118
@@ -136,21 +136,21 @@ Once the compressed lower-triangular distance matrix is built, it is passed to a
|`fluentbit_tda_betti0`| gauge | Approximate Betti₀ - number of connected components (clusters) in the embedded point cloud at the selected scale. Large values indicate fragmentation into many "micro-regimes". |
140
-
|`fluentbit_tda_betti1`| gauge | Approximate Betti₁ - number of 1-dimensional loops / cycles in the Rips complex. Non-zero values often signal **recurrent, quasi-periodic, or cycling behavior**, typical of intermittent failure / recovery patterns and other regime switches. |
141
-
|`fluentbit_tda_betti2`| gauge | Approximate Betti₂ - number of 2-dimensional voids (higher-order structures). These can appear when the system explores different “surfaces” in state space, e.g., transitioning between distinct operating modes. |
139
+
|`fluentbit_tda_betti0`| gauge | Approximate Betti₀. The number of connected components (clusters) in the embedded point cloud at the selected scale. Large values indicate fragmentation into many "micro-regimes". |
140
+
|`fluentbit_tda_betti1`| gauge | Approximate Betti₁. The number of 1-dimensional loops / cycles in the Rips complex. Non-zero values often signal **recurrent, quasi-periodic, or cycling behavior**, typical of intermittent failure / recovery patterns and other regime switches. |
141
+
|`fluentbit_tda_betti2`| gauge | Approximate Betti₂. The number of 2-dimensional voids (higher-order structures). These can appear when the system explores different "surfaces" in state space, for example, transitioning between distinct operating modes. |
142
142
143
-
Each metric is timestamped with the current time at the moment of TDA computation and is exported via the same metrics context it received, so downstream metric outputs can scrape or forward them like any other Fluent Bit metric.
143
+
Each metric is timestamped with the current time at the moment of TDA computation and is exported through the same metrics context it received, so downstream metric outputs can scrape or forward them like any other Fluent Bit metric.
144
144
145
145
---
146
146
147
147
## Interpreting Betti numbers
148
148
149
149
Topologically, Betti numbers count the number of "holes" of each dimension in a space:
* Betti₀ is small (often close to 1–few and saturated on a long running), Betti₁ and Betti₂ are typically `0` or very small.
166
+
* Betti₀ is small (often close to 1-few and saturated on a long running), Betti₁ and Betti₂ are typically `0` or very small.
167
167
168
168
2.**Single, one-off failure**
169
169
@@ -173,7 +173,7 @@ Some practical patterns:
173
173
174
174
3.**Intermittent failure / unstable regime**
175
175
176
-
* The system repeatedly bounces between "healthy" and "unhealthy" states (e.g., repeated `Connection refused` / `broken connection` errors interspersed with 200 responses).
176
+
* The system repeatedly bounces between "healthy" and "unhealthy" states (For example, repeated `Connection refused` / `broken connection` errors interspersed with 200 responses).
177
177
* The trajectory in phase space forms **loops**: metrics move away from the healthy region and then return, many times.
178
178
* Betti₁ (and occasionally Betti₂) increases noticeably while this behavior persists, reflecting the emergence of non-trivial cycles in the metric dynamics.
179
179
@@ -266,14 +266,14 @@ This configuration reconstructs the system in an effective dimension of `4 × fe
266
266
267
267
`tda` is particularly useful when:
268
268
269
-
* You suspect **non-linear or multi-modal behavior** in your system (e.g., on/off regimes, congestion collapse, periodic retries).
269
+
* You suspect **non-linear or multi-modal behavior** in your system (For example, on/off regimes, congestion collapse, periodic retries).
270
270
* Standard indicators (mean, percentiles, error rates) show "noise," but you want to know whether that noise hides **coherent structure**.
271
-
* You want to build alerts not just on “levels” of metrics, but on **changes in the topology** of system behavior – for example:
271
+
* You want to build alerts not simply on "levels" of metrics, but on **changes in the topology** of system behavior. For example:
272
272
273
273
* "Raise an alert if Betti₁ remains above 5 for more than 5 minutes."
274
274
* "Mark windows where Betti₂ becomes non-zero as potential phase transitions."
275
275
276
-
Because the plugin operates on an arbitrary selection of metrics (chosen upstream via `metrics_selector` or by how you configure `fluentbit_metrics`), you can tailor the TDA to focus on:
276
+
Because the plugin operates on an arbitrary selection of metrics (chosen upstream through `metrics_selector` or by how you configure `fluentbit_metrics`), you can tailor the TDA to focus on:
277
277
278
278
* Network health (latency histograms, connection failures, TLS handshake errors),
0 commit comments