Skip to content

Commit d4d1aa0

Browse files
committed
processor_tda: Fix styles
Signed-off-by: Hiroshi Hatake <[email protected]>
1 parent 4bbcb37 commit d4d1aa0

File tree

1 file changed

+13
-13
lines changed

1 file changed

+13
-13
lines changed

pipeline/processors/tda.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ Internally, quantile selection is handled by `tda_choose_threshold_from_dist`, w
112112

113113
### 5. Persistent Homology through Ripser
114114

115-
Once the compressed lower-triangular distance matrix is built, it is passed to a thin wrapper around **Ripser**, a well-known implementation of VietorisRips 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:
116116

117117
1. **Compression and C API**
118118

@@ -136,21 +136,21 @@ Once the compressed lower-triangular distance matrix is built, it is passed to a
136136

137137
| Metric name | Type | Description |
138138
| ---------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
139-
| `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. |
142142

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.
144144

145145
---
146146

147147
## Interpreting Betti numbers
148148

149149
Topologically, Betti numbers count the number of "holes" of each dimension in a space:
150150

151-
* **Betti₀** connected components (0-dimensional clusters).
152-
* **Betti₁** 1-dimensional holes (loops / cycles).
153-
* **Betti₂** 2-dimensional voids, and so on.
151+
* **Betti₀**: connected components (0-dimensional clusters).
152+
* **Betti₁**: 1-dimensional holes (loops / cycles).
153+
* **Betti₂**: 2-dimensional voids, and so on.
154154

155155
In our context:
156156

@@ -163,7 +163,7 @@ Some practical patterns:
163163
1. **Stable regime**
164164

165165
* Metrics fluctuate near a single attractor.
166-
* Betti₀ is small (often close to 1few 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.
167167

168168
2. **Single, one-off failure**
169169

@@ -173,7 +173,7 @@ Some practical patterns:
173173

174174
3. **Intermittent failure / unstable regime**
175175

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).
177177
* The trajectory in phase space forms **loops**: metrics move away from the healthy region and then return, many times.
178178
* Betti₁ (and occasionally Betti₂) increases noticeably while this behavior persists, reflecting the emergence of non-trivial cycles in the metric dynamics.
179179

@@ -266,14 +266,14 @@ This configuration reconstructs the system in an effective dimension of `4 × fe
266266

267267
`tda` is particularly useful when:
268268

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).
270270
* 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:
272272

273273
* "Raise an alert if Betti₁ remains above 5 for more than 5 minutes."
274274
* "Mark windows where Betti₂ becomes non-zero as potential phase transitions."
275275

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:
277277

278278
* Network health (latency histograms, connection failures, TLS handshake errors),
279279
* Resource saturation (CPU, memory, buffer usage),

0 commit comments

Comments
 (0)