200 lines
93 KiB
Diff
200 lines
93 KiB
Diff
From c23aa3e37e0bffc42c6233d0eb89a5c56f1fc77b Mon Sep 17 00:00:00 2001
|
||
From: vegbir <yangjiaqi16@huawei.com>
|
||
Date: Sat, 10 Jun 2023 11:41:04 +0800
|
||
Subject: [PATCH 4/7] rubik: add psi design documentation
|
||
|
||
Signed-off-by: vegbir <yangjiaqi16@huawei.com>
|
||
---
|
||
CHANGELOG/CHANGELOG-2.0.0.md | 29 +++++++--
|
||
docs/design/psi.md | 94 +++++++++++++++++++++++++++++
|
||
docs/images/psi/PSI_designation.svg | 16 +++++
|
||
docs/images/psi/PSI_implement.svg | 4 ++
|
||
4 files changed, 139 insertions(+), 4 deletions(-)
|
||
create mode 100644 docs/design/psi.md
|
||
create mode 100644 docs/images/psi/PSI_designation.svg
|
||
create mode 100644 docs/images/psi/PSI_implement.svg
|
||
|
||
diff --git a/CHANGELOG/CHANGELOG-2.0.0.md b/CHANGELOG/CHANGELOG-2.0.0.md
|
||
index 5cc2cb8..b46fa3d 100644
|
||
--- a/CHANGELOG/CHANGELOG-2.0.0.md
|
||
+++ b/CHANGELOG/CHANGELOG-2.0.0.md
|
||
@@ -1,16 +1,37 @@
|
||
-1. Architecture optimization:
|
||
+# CHANGELOG
|
||
+
|
||
+## v2.0.1
|
||
+
|
||
+### New Feature
|
||
+
|
||
+Before June 30, 2023
|
||
+
|
||
+1. **dynMemory** (asynchronous memory classification recovery): implement fssr strategy
|
||
+2. **psi**: interference detection based on PSI index
|
||
+3. **quotaTurbo**: elastic cpu limit user mode solution
|
||
+
|
||
+## v2.0.0
|
||
+
|
||
+### Architecture optimization
|
||
+
|
||
refactor rubik through `informer-podmanager-services` mechanism, decoupling modules and improving performance
|
||
-2. Interface change:
|
||
+
|
||
+### Interface change
|
||
+
|
||
- configuration file changes
|
||
- use the list-watch mechanism to get the pod instead of the http interface
|
||
-3. Feature enhancements:
|
||
+
|
||
+### Feature enhancements
|
||
+
|
||
- support elastic cpu limit user mode scheme-quotaturbo
|
||
- support psi index observation
|
||
- support memory asynchronous recovery feature (fssr optimization)
|
||
- support memory access bandwidth and LLC limit
|
||
- optimize the absolute preemption
|
||
- optimize the elastic cpu limiting kernel mode scheme-quotaburst
|
||
-4. Other optimizations:
|
||
+
|
||
+### Other optimizations
|
||
+
|
||
- document optimization
|
||
- typo fix
|
||
- compile option optimization
|
||
diff --git a/docs/design/psi.md b/docs/design/psi.md
|
||
new file mode 100644
|
||
index 0000000..674a8e0
|
||
--- /dev/null
|
||
+++ b/docs/design/psi.md
|
||
@@ -0,0 +1,94 @@
|
||
+# 【需求设计】基于PSI指标的干扰检测
|
||
+
|
||
+## 需求设计图
|
||
+
|
||
+
|
||
+
|
||
+## 实现思路
|
||
+
|
||
+### PSI简介
|
||
+
|
||
+PSI是Pressure Stall Information的简称,用于评估当前系统三大基础硬件资源CPU、Memory、IO的压力。顾名思义,当进程无法获得运行所需的资源时将会产生停顿,PSI就是衡量进程停顿时间长度的度量标准。
|
||
+
|
||
+### 使能cgroupv1 psi特性
|
||
+
|
||
+首先,检查是否开启cgroup v1的PSI。两种方法,看看文件是否存在或者查看内核启动命令行是否包含psi相关选项。
|
||
+
|
||
+```bash
|
||
+cat /proc/cmdline | grep "psi=1 psi_v1=1"
|
||
+```
|
||
+
|
||
+若无,则新增内核启动命令行
|
||
+
|
||
+```bash
|
||
+# 查看内核版本号
|
||
+uname -a
|
||
+# Linux openEuler 5.10.0-136.12.0.86.oe2203sp1.x86_64 #1
|
||
+# 找到内核的boot文件
|
||
+ls /boot/vmlinuz-5.10.0-136.12.0.86.oe2203sp1.x86_64
|
||
+# 新增参数
|
||
+grubby --update-kernel="/boot/vmlinuz-5.10.0-136.12.0.86.oe2203sp1.x86_64" --args="psi=1 psi_v1=1"
|
||
+# 重启
|
||
+reboot
|
||
+```
|
||
+
|
||
+随后便可以在cgroup v1中使用psi的三个文件观测数据。
|
||
+例如,在`/sys/fs/cgroup/cpu,cpuacct/kubepods/burstable/<PodUID>/<container-longid>`目录下,涉及如下文件:
|
||
+
|
||
+- cpu.pressure
|
||
+- memory.pressure
|
||
+- io.pressure
|
||
+
|
||
+### 方案流程
|
||
+
|
||
+针对PSI格式数据,使用`some avg10`作为观测指标。它表示任一任务在10s内的平均阻塞时间占比。
|
||
+
|
||
+用户通过配置阈值保障在线Pod的资源可用以及高性能。具体来说,当阻塞占比超过某一阈值(默认为5%),则rubik按照一定策略驱逐离线Pod,释放相应资源。
|
||
+
|
||
+在离线业务由注解`volcano.sh/preemptable="true"/"false"`标识。
|
||
+
|
||
+```yaml
|
||
+annotations:
|
||
+ volcano.sh/preemptable: true
|
||
+```
|
||
+
|
||
+在线Pod的CPU和内存利用率偏高,rubik会驱逐当前占用CPU资源/内存资源最多的离线业务。若离线业务I/O高,则会选择驱逐CPU资源占用最多的离线业务。
|
||
+> 注1:当前cgroup控制io带宽手段有效,难以精准判断驱逐哪个业务会降低io,因此暂时采用CPU利用率作为标准。
|
||
+>
|
||
+> 注2:通过cadvisor库实时获取离线业务的CPU利用率、内存占用量、IO带宽等信息,按指标从大到小排序。
|
||
+
|
||
+需要处理可疑对象时则通过责任链设计模式传递事件处理请求,并执行相应操作。
|
||
+
|
||
+## 实现设计
|
||
+
|
||
+
|
||
+
|
||
+## 接口设计
|
||
+
|
||
+```yaml
|
||
+data:
|
||
+ config.json: |
|
||
+ {
|
||
+ "agent": {
|
||
+ "enabledFeatures": [
|
||
+ "psi"
|
||
+ ]
|
||
+ },
|
||
+ "psi": {
|
||
+ "resource": [
|
||
+ "cpu",
|
||
+ "memory",
|
||
+ "io",
|
||
+ ],
|
||
+ "interval": 10
|
||
+ }
|
||
+ }
|
||
+```
|
||
+
|
||
+`psi`字段用于标识基于psi指标的干扰检测特性配置。目前,psi特性支持监测CPU、内存和I/O资源,用户可以按需配置该字段,单独或组合监测资源的PSI取值。
|
||
+
|
||
+| 配置键[=默认值] | 类型 | 描述 | 可选值 |
|
||
+| --------------- | ---------- | -------------------------------- | ----------- |
|
||
+| interval=10 |int|psi指标监测间隔(单位:秒)| [10,30]|
|
||
+| resource=[] | string数组 | 资源类型,声明何种资源需要被访问 | cpu, memory, io |
|
||
+| avg10Threshold=5.0 | float | psi some类型资源平均10s内的压制百分比阈值(单位:%),超过该阈值则驱逐离线业务 | [5.0,100]|
|
||
diff --git a/docs/images/psi/PSI_designation.svg b/docs/images/psi/PSI_designation.svg
|
||
new file mode 100644
|
||
index 0000000..8b829e8
|
||
--- /dev/null
|
||
+++ b/docs/images/psi/PSI_designation.svg
|
||
@@ -0,0 +1,16 @@
|
||
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1348.1945190429688 1007.3749847412109" width="1348.1945190429688" height="1007.3749847412109" filter="invert(93%) hue-rotate(180deg)">
|
||
+ <!-- svg-source:excalidraw -->
|
||
+
|
||
+ <defs>
|
||
+ <style class="style-fonts">
|
||
+ @font-face {
|
||
+ font-family: "Virgil";
|
||
+ src: url("https://excalidraw.com/Virgil.woff2");
|
||
+ }
|
||
+ @font-face {
|
||
+ font-family: "Cascadia";
|
||
+ src: url("https://excalidraw.com/Cascadia.woff2");
|
||
+ }
|
||
+ </style>
|
||
+ </defs>
|
||
+ <rect x="0" y="0" width="1348.1945190429688" height="1007.3749847412109" fill="#ffffff"/><g stroke-linecap="round" transform="translate(130.611083984375 10) rotate(0 49 20.5)"><path d="M10.25 0 M10.25 0 C28.3 -2.22, 41.02 -1.56, 87.75 0 M10.25 0 C41.81 0.02, 72.45 -1.44, 87.75 0 M87.75 0 C93.66 -1.68, 97.97 4.19, 98 10.25 M87.75 0 C93.97 -1.69, 96.77 2.23, 98 10.25 M98 10.25 C98.22 18.12, 98.06 26.67, 98 30.75 M98 10.25 C97.81 17.25, 97.4 25.59, 98 30.75 M98 30.75 C98.76 36.53, 96.26 41.35, 87.75 41 M98 30.75 C95.89 39.86, 93.88 38.92, 87.75 41 M87.75 41 C72.63 39.3, 55.58 41.37, 10.25 41 M87.75 41 C69.77 41.35, 53.94 41.69, 10.25 41 M10.25 41 C3.16 42.81, 0.73 35.99, 0 30.75 M10.25 41 C5.18 40.02, -1.6 39.7, 0 30.75 M0 30.75 C-1.8 26.73, -1.46 20.84, 0 10.25 M0 30.75 C-0.64 25.32, 0.15 20.57, 0 10.25 M0 10.25 C1.75 3.72, 2.7 0.66, 10.25 0 M0 10.25 C-1.57 5.24, 2.35 0.94, 10.25 0" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(158.611083984375 19) rotate(0 21 11.5)"><text x="21" y="18" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">开始</text></g><g stroke-linecap="round" transform="translate(10.52783203125 272.54173278808594) rotate(0 167.5 51)"><path d="M25.5 0 M25.5 0 C102.23 1.4, 175.02 2.64, 309.5 0 M25.5 0 C101.89 1.59, 179.27 1.13, 309.5 0 M309.5 0 C328.43 0.51, 333.43 9.99, 335 25.5 M309.5 0 C327.13 -1.89, 335.31 9.67, 335 25.5 M335 25.5 C335.67 41.65, 336.47 60.15, 335 76.5 M335 25.5 C334.53 36.69, 334.47 49.47, 335 76.5 M335 76.5 C333.35 93.45, 325.87 101.41, 309.5 102 M335 76.5 C336.32 91.88, 326.66 102.2, 309.5 102 M309.5 102 C200.46 102.84, 91.48 103.54, 25.5 102 M309.5 102 C237.27 102.83, 164.87 103.44, 25.5 102 M25.5 102 C7.62 103.31, -0.35 95.1, 0 76.5 M25.5 102 C8.01 101.64, 0.32 91.85, 0 76.5 M0 76.5 C1.44 56.76, 0.02 38.05, 0 25.5 M0 76.5 C-0.69 61.46, 0.54 47.4, 0 25.5 M0 25.5 C-0.76 8.89, 8.59 1.26, 25.5 0 M0 25.5 C-0.06 7.1, 10.4 -0.3, 25.5 0" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(70.02783203125 300.54173278808594) rotate(0 108 23)"><text x="108" y="18" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">遍历在线Pod列表</text><text x="108" y="41" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">读取并解析Pod PSI指标</text></g><g stroke-linecap="round" transform="translate(10.5833740234375 112.263916015625) rotate(0 167 51)"><path d="M25.5 0 M25.5 0 C96.35 0.78, 167.13 1, 308.5 0 M25.5 0 C104.04 2.22, 181.65 0.88, 308.5 0 M308.5 0 C324.28 -1.89, 335.64 8.69, 334 25.5 M308.5 0 C327.29 -1.41, 336.11 8.11, 334 25.5 M334 25.5 C335.47 39.31, 332.59 50.78, 334 76.5 M334 25.5 C334.37 44.3, 333.82 62.76, 334 76.5 M334 76.5 C335.88 92.21, 327.02 100.05, 308.5 102 M334 76.5 C334.52 91.59, 324.31 103.95, 308.5 102 M308.5 102 C228.63 102.84, 148.86 101.45, 25.5 102 M308.5 102 C249.17 102.01, 189.79 101.17, 25.5 102 M25.5 102 C10.08 102.34, -1.32 92.32, 0 76.5 M25.5 102 C6.56 101.39, -2.07 93.74, 0 76.5 M0 76.5 C0.83 62.92, 1.7 46.63, 0 25.5 M0 76.5 C0.39 61.78, 0.97 46.06, 0 25.5 M0 25.5 C-1.92 7.82, 8.15 -0.27, 25.5 0 M0 25.5 C1.7 7.13, 7.63 2.03, 25.5 0" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(17.5833740234375 117.263916015625) rotate(0 160 46)"><text x="160" y="18" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">是否支持cgroupV1 PSI接口?</text><text x="160" y="41" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">/sys/fs/cgroup/cpuacct/cpu.pressure</text><text x="160" y="64" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">...io.pressure </text><text x="160" y="87" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">...memory.pressure</text></g><g stroke-linecap="round" transform="translate(11.166748046875 434.31944274902344) rotate(0 174 51)"><path d="M25.5 0 M25.5 0 C141.86 -1.5, 256.46 -0.74, 322.5 0 M25.5 0 C104.69 -1.37, 184.43 -0.65, 322.5 0 M322.5 0 C340.91 -0.41, 347.09 8.82, 348 25.5 M322.5 0 C339.03 1.84, 346.93 9.12, 348 25.5 M348 25.5 C347.09 35.43, 346.67 46.86, 348 76.5 M348 25.5 C348.64 41.63, 347.7 58.14, 348 76.5 M348 76.5 C348.99 93.49, 340.63 103.04, 322.5 102 M348 76.5 C348.78 95.2, 340.13 102.44, 322.5 102 M322.5 102 C225.34 100.91, 127.9 101.61, 25.5 102 M322.5 102 C239.48 103.2, 156.32 104.19, 25.5 102 M25.5 102 C7.98 103.63, 0.68 94.71, 0 76.5 M25.5 102 C8.62 100.87, -1.15 94.15, 0 76.5 M0 76.5 C0.13 59.95, 1.01 46.12, 0 25.5 M0 76.5 C-0.17 59.14, -0.35 42.37, 0 25.5 M0 25.5 C-0.56 7.04, 10.2 -1.79, 25.5 0 M0 25.5 C2.05 8.98, 9.35 1.87, 25.5 0" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(18.166748046875 462.31944274902344) rotate(0 167 23)"><text x="167" y="18" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">标记PSI指标最大值分别为cpu_max、</text><text x="167" y="41" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">mem_max、io_max</text></g><g stroke-linecap="round" transform="translate(12.4166259765625 618.6249694824219) rotate(0 175 40)"><path d="M20 0 M20 0 C90.16 -1.94, 163.31 -0.31, 330 0 M20 0 C102.24 0.43, 185.71 0.72, 330 0 M330 0 C341.85 1.09, 351.39 5.65, 350 20 M330 0 C344.39 0.54, 349.56 7.76, 350 20 M350 20 C351.96 31.57, 351.2 41.11, 350 60 M350 20 C349.63 31.23, 349.46 44.1, 350 60 M350 60 C351.12 75.11, 342.86 81.39, 330 80 M350 60 C351.43 74.39, 344.74 80.64, 330 80 M330 80 C247.86 80.53, 166.17 79.88, 20 80 M330 80 C257.15 81.81, 184.63 80.94, 20 80 M20 80 C8.42 79.45, 1.19 73.96, 0 60 M20 80 C4.44 80.35, 0.31 72.15, 0 60 M0 60 C1.98 52.1, -0.04 45.16, 0 20 M0 60 C-0.21 49.7, 0.69 38.28, 0 20 M0 20 C-1.1 5.1, 5.34 -1.58, 20 0 M0 20 C-1.16 6.97, 8.06 0.29, 20 0" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(77.4166259765625 647.1249694824219) rotate(0 110 11.5)"><text x="110" y="18" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">cpu_max >= threshold?</text></g><g stroke-linecap="round" transform="translate(10.97222900390625 769.9583282470703) rotate(0 176.5 40)"><path d="M20 0 M20 0 C107.63 -1.04, 192.65 -1.27, 333 0 M20 0 C105 -1.27, 191.11 -2.51, 333 0 M333 0 C344.6 0.73, 353.98 8.64, 353 20 M333 0 C347.69 -1.49, 352.5 6.67, 353 20 M353 20 C354.3 30.7, 354.78 45.19, 353 60 M353 20 C353.95 32.75, 353.11 47.34, 353 60 M353 60 C354.75 74.55, 346.86 78.38, 333 80 M353 60 C353.24 73.95, 345.5 81.97, 333 80 M333 80 C270.06 77.4, 206.38 77.14, 20 80 M333 80 C269.07 81.29, 205.64 81.31, 20 80 M20 80 C5.81 79.69, -1.15 74.54, 0 60 M20 80 C6.83 77.94, -1.39 71.22, 0 60 M0 60 C0.55 49.52, -0.69 41.67, 0 20 M0 60 C0.32 50.7, 0.07 42.06, 0 20 M0 20 C-0.92 8.25, 5.67 -1.77, 20 0 M0 20 C1.11 5.89, 8.42 -1.95, 20 0" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(71.47222900390625 798.4583282470703) rotate(0 116 11.5)"><text x="116" y="18" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">mem_max >= threshold?</text></g><g stroke-linecap="round" transform="translate(10 916.6804962158203) rotate(0 175.5 40)"><path d="M20 0 M20 0 C136 -1.93, 252.41 -0.85, 331 0 M20 0 C114.86 0.97, 211.17 1.59, 331 0 M331 0 C344.97 -0.55, 350.39 8.2, 351 20 M331 0 C342.71 -0.37, 353.3 7.25, 351 20 M351 20 C350.08 33.08, 350.01 41.22, 351 60 M351 20 C350.02 34, 351.84 47.19, 351 60 M351 60 C349.89 74.14, 344.49 79.73, 331 80 M351 60 C350.53 74.99, 342.54 80.4, 331 80 M331 80 C209.13 79.25, 89.41 80.22, 20 80 M331 80 C209.82 82.07, 88.43 81.56, 20 80 M20 80 C5.63 80.75, 1.25 73.15, 0 60 M20 80 C8.89 79.61, 0.22 75.62, 0 60 M0 60 C0.59 46.44, 2.02 32.32, 0 20 M0 60 C-0.81 50.07, -1.11 37.86, 0 20 M0 20 C-0.32 7.39, 7 -0.34, 20 0 M0 20 C-0.48 5.66, 5.6 -0.43, 20 0" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(84 945.1804962158203) rotate(0 101.5 11.5)"><text x="101.5" y="18" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">io_max >= threshold?</text></g><g stroke-linecap="round" transform="translate(449.55560302734375 615.8472442626953) rotate(0 188.5 40)"><path d="M20 0 M20 0 C100.47 -0.06, 179.91 -1.45, 357 0 M20 0 C154.16 1.53, 288.97 1.86, 357 0 M357 0 C369.16 1.23, 375.45 5.17, 377 20 M357 0 C370.03 -2.3, 377.67 7.17, 377 20 M377 20 C379.03 32.08, 379.02 48.54, 377 60 M377 20 C377.31 35.48, 376.56 50.29, 377 60 M377 60 C378.66 74.52, 370.72 81.5, 357 80 M377 60 C375.34 75.01, 368.06 78.94, 357 80 M357 80 C256.23 82.01, 154.98 80.67, 20 80 M357 80 C226.93 77.54, 95.89 77.4, 20 80 M20 80 C6.57 80.07, -1.74 72.29, 0 60 M20 80 C6.47 78.48, -1.25 71.1, 0 60 M0 60 C1.23 50.97, -1.13 42.61, 0 20 M0 60 C-0.47 50.8, 0.44 40.42, 0 20 M0 20 C-0.95 8.06, 5.56 0.32, 20 0 M0 20 C1.38 6.13, 8.09 -2.11, 20 0" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(476.05560302734375 644.3472442626953) rotate(0 162 11.5)"><text x="162" y="18" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">按照CPU利用率对离线业务进行排序</text></g><g stroke-linecap="round" transform="translate(448.5277099609375 768.5694427490234) rotate(0 188.5 40)"><path d="M20 0 M20 0 C123.13 -1.1, 226.29 -1.63, 357 0 M20 0 C141.25 1.98, 262.74 2.66, 357 0 M357 0 C368.86 1.31, 378.15 4.91, 377 20 M357 0 C368.16 0.55, 376.16 5.42, 377 20 M377 20 C375.54 32.16, 374.92 44.8, 377 60 M377 20 C376.17 28.55, 376.42 39.85, 377 60 M377 60 C376.1 74.79, 368.65 79.99, 357 80 M377 60 C375.1 72.51, 371.31 81.34, 357 80 M357 80 C265.43 78.11, 176.83 77.63, 20 80 M357 80 C285.45 78.97, 214.63 77.78, 20 80 M20 80 C8.5 78.72, -1.8 71.96, 0 60 M20 80 C7.96 81.95, -0.52 74.75, 0 60 M0 60 C0.56 44.64, -1.72 33.31, 0 20 M0 60 C-0.44 46.14, -0.65 30.54, 0 20 M0 20 C1.94 7.67, 7.1 -1.65, 20 0 M0 20 C1.14 8.7, 5.92 0.59, 20 0" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(476.0277099609375 797.0694427490234) rotate(0 161 11.5)"><text x="161" y="18" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">按照内存占用量对离线业务进行排序</text></g><g stroke-linecap="round" transform="translate(446.1666259765625 917.3749847412109) rotate(0 188.5 40)"><path d="M20 0 M20 0 C93.39 0.44, 166.78 -1.42, 357 0 M20 0 C123.27 -2.54, 226.96 -1.37, 357 0 M357 0 C371.61 -0.57, 377.36 4.84, 377 20 M357 0 C371.78 1.75, 376.6 8.72, 377 20 M377 20 C378.69 29.36, 375.6 37.23, 377 60 M377 20 C378.05 33.07, 378.08 43.42, 377 60 M377 60 C375.63 73.91, 370.91 79.92, 357 80 M377 60 C378.62 73.86, 371.63 81.09, 357 80 M357 80 C236.93 79.1, 117.11 78.72, 20 80 M357 80 C255.39 79.11, 154.4 79.25, 20 80 M20 80 C7.72 80.03, -1.39 74.11, 0 60 M20 80 C7.72 80.9, -0.29 75.35, 0 60 M0 60 C-0.64 51.05, -0.44 42.6, 0 20 M0 60 C-0.23 46.86, -0.08 34.21, 0 20 M0 20 C0.49 5.37, 6 1.48, 20 0 M0 20 C0.05 7.32, 8.62 1.28, 20 0" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(506.1666259765625 945.8749847412109) rotate(0 128.5 11.5)"><text x="128.5" y="18" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">按io带宽对离线业务进行排序</text></g><g stroke-linecap="round" transform="translate(931.3472290039062 746.0138397216797) rotate(0 87.5 64)"><path d="M32 0 M32 0 C63.04 -0.39, 98.53 -0.37, 143 0 M32 0 C64.28 0.47, 94.64 -0.82, 143 0 M143 0 C164.9 -1.15, 175.89 11.58, 175 32 M143 0 C165.94 1.66, 173.78 12.07, 175 32 M175 32 C175.9 44.69, 174.53 57.09, 175 96 M175 32 C173.76 44.94, 173.63 58.41, 175 96 M175 96 C174.01 116.74, 166.19 128.67, 143 128 M175 96 C176.13 117.93, 163.41 126.87, 143 128 M143 128 C105.82 127.42, 69.22 128.68, 32 128 M143 128 C118.56 129.26, 93.62 129.87, 32 128 M32 128 C10.42 126.51, 1.1 115.42, 0 96 M32 128 C9.29 125.83, -2.15 119.03, 0 96 M0 96 C1.71 79.66, -1.24 62.11, 0 32 M0 96 C1.09 80.49, -0.43 67.46, 0 32 M0 32 C0.1 11.57, 9.91 1.79, 32 0 M0 32 C0.35 12.15, 10.09 0.66, 32 0" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(957.8472290039062 798.5138397216797) rotate(0 61 11.5)"><text x="61" y="18" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">处理可疑对象</text></g><g stroke-linecap="round" transform="translate(1194.5278015136719 687.5276794433594) rotate(0 70.5 39.5)"><path d="M19.75 0 M19.75 0 C58.05 -0.8, 96.89 0.1, 121.25 0 M19.75 0 C58.91 0.79, 97.19 0.36, 121.25 0 M121.25 0 C136.21 0.3, 142.29 6.09, 141 19.75 M121.25 0 C135.08 1.61, 141.23 5.93, 141 19.75 M141 19.75 C141.96 30.08, 141.02 42.21, 141 59.25 M141 19.75 C140.44 30.74, 141.3 41.52, 141 59.25 M141 59.25 C141.58 71.47, 135.18 78.72, 121.25 79 M141 59.25 C140.36 72.47, 136.1 78.9, 121.25 79 M121.25 79 C85.77 77.92, 50.57 78.3, 19.75 79 M121.25 79 C96.75 80.04, 71.68 78.25, 19.75 79 M19.75 79 C8.47 77.24, 1.38 73.71, 0 59.25 M19.75 79 C5.25 77.22, -1.23 73.04, 0 59.25 M0 59.25 C1.37 51.87, 1.33 43.09, 0 19.75 M0 59.25 C-0.26 43.39, 0.12 28.35, 0 19.75 M0 19.75 C-1.75 6.72, 7.2 -1.66, 19.75 0 M0 19.75 C-0.36 6.65, 5.92 -0.48, 19.75 0" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(1224.0278015136719 715.5276794433594) rotate(0 41 11.5)"><text x="41" y="18" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">日志告警</text></g><g stroke-linecap="round" transform="translate(1197.1945190429688 834.458251953125) rotate(0 70.5 39.5)"><path d="M19.75 0 M19.75 0 C54.14 1.75, 88.34 1.39, 121.25 0 M19.75 0 C39.37 0.42, 60.11 -0.84, 121.25 0 M121.25 0 C135.88 0.2, 141.61 8.46, 141 19.75 M121.25 0 C134.52 -1.95, 143.17 4.56, 141 19.75 M141 19.75 C139.71 33.26, 141.79 47.1, 141 59.25 M141 19.75 C141.57 29.66, 141.32 39.43, 141 59.25 M141 59.25 C139.2 73.6, 133.19 78.45, 121.25 79 M141 59.25 C140.46 73.02, 132.41 79.16, 121.25 79 M121.25 79 C87.72 78.27, 53.65 77.02, 19.75 79 M121.25 79 C84.94 77.86, 50.23 79, 19.75 79 M19.75 79 C8.47 77.44, -0.43 72.34, 0 59.25 M19.75 79 C7.21 78.16, 2.19 72.01, 0 59.25 M0 59.25 C2.3 49.08, 1.81 40.98, 0 19.75 M0 59.25 C0.48 51.81, 0.53 43.11, 0 19.75 M0 19.75 C-1.91 6.09, 7.56 -0.84, 19.75 0 M0 19.75 C0.06 6.82, 5.63 2.04, 19.75 0" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(1226.6945190429688 862.458251953125) rotate(0 41 11.5)"><text x="41" y="18" font-family="Helvetica, Segoe UI Emoji" font-size="20px" fill="#000000" text-anchor="middle" style="white-space: pre;" direction="ltr">应用驱逐</text></g><g stroke-linecap="round"><g transform="translate(175.16510727826292 52.87619674152461) rotate(0 0.3472290039062358 27.43054962158203)"><path d="M-0.56 0.63 C-0.69 9.82, -0.2 45.75, -0.14 54.65 M1.35 -0.09 C1.54 9.34, 1.98 46.91, 2.13 56.08" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(175.16510727826292 52.87619674152461) rotate(0 0.3472290039062358 27.43054962158203)"><path d="M-6.56 29.04 C-4.63 38.04, -2.25 48.1, 2.02 55.86 M-8.37 30.32 C-4.91 38.21, -1.4 46.74, 1.35 56.29" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(175.16510727826292 52.87619674152461) rotate(0 0.3472290039062358 27.43054962158203)"><path d="M12.2 28.78 C7.51 37.78, 3.28 47.94, 2.02 55.86 M10.39 30.06 C7.85 38.06, 5.36 46.68, 1.35 56.29" stroke="#000000" stroke-width="1" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(175.8595652860754 218.15398299640742) rotate(0 1.04168701171875 26.04167175292968)"><path d="M0.48 0.63 C0.95 9.17, 2.04 42.9, 2.13 51.61 M-0.73 -0.08 C-0.35 8.59, 0.53 44.4, 1.21 52.89" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(175.8595652860754 218.15398299640742) rotate(0 1.04168701171875 26.04167175292968)"><path d="M-7.82 28.94 C-7.14 32.92, -2.64 40.78, -0.52 54.86 M-9.31 29.31 C-6.24 33.87, -4.41 40.75, 0.64 52.63" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(175.8595652860754 218.15398299640742) rotate(0 1.04168701171875 26.04167175292968)"><path d="M9.99 28.09 C6.34 32.34, 6.52 40.41, -0.52 54.86 M8.5 28.46 C7.44 33.27, 5.14 40.35, 0.64 52.63" stroke="#000000" stroke-width="1" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(174.47071030560664 378.57067000812617) rotate(0 0 25.694442749023438)"><path d="M0.28 0.02 C0.26 8.6, -1.05 43.07, -1.02 51.47 M-1.03 -1.02 C-0.6 7.78, 0.99 44.35, 1.16 53.05" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(174.47071030560664 378.57067000812617) rotate(0 0 25.694442749023438)"><path d="M-8.41 27.52 C-6.15 35.32, -5.79 37.96, 0.29 51.24 M-8.79 28.7 C-6.16 37.93, -1.72 44.78, 0.69 52.77" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(174.47071030560664 378.57067000812617) rotate(0 0 25.694442749023438)"><path d="M9.16 26.93 C7.47 34.91, 3.89 37.67, 0.29 51.24 M8.77 28.11 C5.39 37.48, 3.83 44.52, 0.69 52.77" stroke="#000000" stroke-width="1" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(175.8595652860754 543.1539829964074) rotate(0 0.34722900390625 34.72222900390625)"><path d="M0.18 0.9 C0.48 12.48, 0.83 57.52, 0.75 68.93 M-1.19 0.32 C-0.94 12.11, -0.72 58.47, -0.17 70.19" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(175.8595652860754 543.1539829964074) rotate(0 0.34722900390625 34.72222900390625)"><path d="M-9.58 42.33 C-9.78 46.45, -6.76 55.71, 1.25 69.47 M-11.32 41.39 C-8.29 49.53, -5.23 55.89, -1.13 71.02" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(175.8595652860754 543.1539829964074) rotate(0 0.34722900390625 34.72222900390625)"><path d="M10.94 41.86 C6.43 46.11, 5.15 55.46, 1.25 69.47 M9.19 40.92 C7.16 49.22, 5.17 55.69, -1.13 71.02" stroke="#000000" stroke-width="1" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(175.8595652860754 702.8761814827355) rotate(0 -0.694427490234375 31.59722900390625)"><path d="M0.05 0.71 C-0.28 11.13, -1.03 53.12, -1.47 63.43 M-1.38 0.04 C-1.92 9.99, -2.64 50.84, -2.46 61.44" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(175.8595652860754 702.8761814827355) rotate(0 -0.694427490234375 31.59722900390625)"><path d="M-11.44 33.07 C-8.53 40.88, -6.44 52.78, -1.76 62.11 M-12.13 33.65 C-9.88 42.4, -5.36 52.34, -2.71 62.22" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(175.8595652860754 702.8761814827355) rotate(0 -0.694427490234375 31.59722900390625)"><path d="M9.08 33.14 C4.97 40.93, 0.05 52.81, -1.76 62.11 M8.39 33.72 C3.93 42.5, 1.73 52.41, -2.71 62.22" stroke="#000000" stroke-width="1" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(177.2484813017004 853.5706700081262) rotate(0 -1.388885498046875 29.166656494140625)"><path d="M-1.1 -0.96 C-1.84 8.87, -3.53 48.49, -3.68 58.57 M0.52 1.14 C0.09 10.63, -0.97 47.13, -1.44 56.58" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(177.2484813017004 853.5706700081262) rotate(0 -1.388885498046875 29.166656494140625)"><path d="M-11.97 27.27 C-6.83 40.24, -2.01 50.05, -0.76 55.55 M-11.15 28 C-7.84 36.3, -5.13 44.18, -1.23 57.43" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(177.2484813017004 853.5706700081262) rotate(0 -1.388885498046875 29.166656494140625)"><path d="M7.99 28.04 C5.89 40.55, 3.46 50.07, -0.76 55.55 M8.8 28.77 C6.71 36.76, 4 44.43, -1.23 57.43" stroke="#000000" stroke-width="1" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(368.22071030560664 661.209555506173) rotate(0 39.236083984374986 -0.34722137451169033)"><path d="M1.04 -0.93 C14.25 -0.84, 65.6 -0.41, 78.56 -0.2 M0.13 1.19 C13.26 0.99, 64.64 -1.61, 77.66 -2.06" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(368.22071030560664 661.209555506173) rotate(0 39.236083984374986 -0.34722137451169033)"><path d="M48.38 9.55 C57.51 6.96, 65.08 3.49, 76.05 -0.31 M50.77 10.33 C60.48 5.63, 68.36 1.62, 77.95 -1.65" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(368.22071030560664 661.209555506173) rotate(0 39.236083984374986 -0.34722137451169033)"><path d="M47.5 -10.95 C56.71 -8.62, 64.49 -7.15, 76.05 -0.31 M49.89 -10.17 C60.05 -7.74, 68.24 -4.61, 77.95 -1.65" stroke="#000000" stroke-width="1" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(370.3040232938879 811.9039829964074) rotate(0 37.15277099609374 -1.041656494140625)"><path d="M-0.1 0.04 C12.27 -0.37, 62.06 -1.99, 74.33 -2.26 M-1.61 -0.99 C10.6 -1.22, 60.46 -0.36, 73.39 -0.81" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(370.3040232938879 811.9039829964074) rotate(0 37.15277099609374 -1.041656494140625)"><path d="M45.32 9.65 C53.67 5.12, 63.49 4.82, 74.76 -2.8 M46.19 8.98 C53.93 6.76, 62.73 2.72, 74.26 -0.72" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(370.3040232938879 811.9039829964074) rotate(0 37.15277099609374 -1.041656494140625)"><path d="M45.2 -10.87 C53.61 -9.05, 63.48 -3, 74.76 -2.8 M46.07 -11.54 C53.84 -7.49, 62.68 -5.26, 74.26 -0.72" stroke="#000000" stroke-width="1" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(365.44287827435664 959.1261814827358) rotate(0 37.847229003906236 -0.347198486328125)"><path d="M0.95 0.33 C13.82 0.54, 63.72 0.28, 76.09 0.07 M-0.01 -0.54 C12.83 -0.57, 63 -1.79, 75.35 -1.65" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(365.44287827435664 959.1261814827358) rotate(0 37.847229003906236 -0.347198486328125)"><path d="M47.81 9.52 C54.49 5.54, 58.69 5.68, 77.29 -0.07 M47.65 9.29 C56.51 4.64, 65.87 2.64, 74.67 -1.72" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(365.44287827435664 959.1261814827358) rotate(0 37.847229003906236 -0.347198486328125)"><path d="M47.62 -11 C54.14 -10.7, 58.38 -6.28, 77.29 -0.07 M47.46 -11.23 C56.32 -8.75, 65.74 -3.64, 74.67 -1.72" stroke="#000000" stroke-width="1" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(832.8040232938879 657.0428990120324) rotate(0 43.749969482421875 74.65277099609375)"><path d="M-0.98 1.18 C13.55 26.07, 72.22 125.67, 87.15 150.42 M0.71 0.76 C15.06 25.85, 71.39 124.41, 86.02 148.89" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(832.8040232938879 657.0428990120324) rotate(0 43.749969482421875 74.65277099609375)"><path d="M64.93 129.11 C71.81 137.41, 77.47 140.64, 85.04 149.07 M63.3 129.27 C68.84 135.67, 75.31 139.88, 85.94 149.61" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(832.8040232938879 657.0428990120324) rotate(0 43.749969482421875 74.65277099609375)"><path d="M82.66 118.78 C84.4 129.99, 84.82 136.27, 85.04 149.07 M81.03 118.94 C81.83 127.88, 83.66 134.78, 85.94 149.61" stroke="#000000" stroke-width="1" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(830.7206492704505 811.9040135139855) rotate(0 43.05557250976557 0.6944427490234375)"><path d="M-0.29 0.76 C13.68 1, 70.62 0.1, 84.93 0.28 M1.76 0.11 C15.98 0.56, 73.23 1.29, 87.01 1.23" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(830.7206492704505 811.9040135139855) rotate(0 43.05557250976557 0.6944427490234375)"><path d="M60.02 9.35 C68.1 6.48, 81.79 3.12, 89.01 1.03 M59.76 10.46 C68.35 7.31, 76.16 4.91, 86.73 0.82" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(830.7206492704505 811.9040135139855) rotate(0 43.05557250976557 0.6944427490234375)"><path d="M60.15 -11.17 C67.97 -5.99, 81.61 -1.29, 89.01 1.03 M59.88 -10.06 C68.62 -6.88, 76.4 -2.93, 86.73 0.82" stroke="#000000" stroke-width="1" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(830.7206492704504 957.0428684944543) rotate(0 45.138885498046875 -69.09721374511719)"><path d="M0.02 -0.28 C15.04 -23.45, 75.41 -115.72, 90.4 -138.81 M-1.43 -1.47 C13.42 -24.51, 74.44 -114.87, 89.52 -137.6" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(830.7206492704504 957.0428684944543) rotate(0 45.138885498046875 -69.09721374511719)"><path d="M81.9 -108.26 C83.57 -118.39, 85.82 -125.58, 88.03 -138.15 M81.76 -108.65 C85.74 -117.65, 86.3 -126.92, 88.78 -137.04" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(830.7206492704504 957.0428684944543) rotate(0 45.138885498046875 -69.09721374511719)"><path d="M64.85 -119.68 C72.01 -126.14, 79.73 -129.67, 88.03 -138.15 M64.71 -120.06 C73.88 -125.38, 79.74 -131.1, 88.78 -137.04" stroke="#000000" stroke-width="1" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(1113.3595652860754 802.8762120003137) rotate(0 37.5 -37.5)"><path d="M0.55 -0.53 C13.01 -13.12, 62.47 -63.16, 75.04 -75.53 M-0.62 1.8 C11.66 -10.63, 61.38 -61.76, 74.11 -74.28" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(1113.3595652860754 802.8762120003137) rotate(0 37.5 -37.5)"><path d="M60.66 -46.97 C64.69 -54.21, 70.01 -64.37, 74.36 -72.46 M62.4 -47.67 C66.11 -54.62, 69.09 -63.3, 73.13 -75.07" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(1113.3595652860754 802.8762120003137) rotate(0 37.5 -37.5)"><path d="M46.09 -61.42 C54.8 -64.09, 64.8 -69.6, 74.36 -72.46 M47.83 -62.12 C56.15 -64.37, 63.74 -68.48, 73.13 -75.07" stroke="#000000" stroke-width="1" fill="none"/></g></g><mask/><g stroke-linecap="round"><g transform="translate(1115.4428782743566 813.2928990120324) rotate(0 36.8055419921875 29.861099243164062)"><path d="M-0.15 -1.12 C12.19 8.81, 60.44 50.17, 72.9 60.34 M-1.69 0.9 C11.14 10.43, 62.56 48.47, 75.24 58.54" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(1115.4428782743566 813.2928990120324) rotate(0 36.8055419921875 29.861099243164062)"><path d="M44.73 48.42 C53.6 53.17, 58.74 53.45, 76.29 57.3 M46.94 48.93 C55.77 52.47, 63.49 54.32, 75.7 57.79" stroke="#000000" stroke-width="1" fill="none"/></g><g transform="translate(1115.4428782743566 813.2928990120324) rotate(0 36.8055419921875 29.861099243164062)"><path d="M57.18 32.1 C63.57 40.21, 66.14 43.86, 76.29 57.3 M59.39 32.61 C64.35 41.16, 68.33 47.92, 75.7 57.79" stroke="#000000" stroke-width="1" fill="none"/></g></g><mask/></svg>
|
||
\ No newline at end of file
|
||
diff --git a/docs/images/psi/PSI_implement.svg b/docs/images/psi/PSI_implement.svg
|
||
new file mode 100644
|
||
index 0000000..9704504
|
||
--- /dev/null
|
||
+++ b/docs/images/psi/PSI_implement.svg
|
||
@@ -0,0 +1,4 @@
|
||
+<?xml version="1.0" encoding="UTF-8"?>
|
||
+<!-- Do not edit this file with editors other than diagrams.net -->
|
||
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1386px" height="771px" viewBox="-0.5 -0.5 1386 771" content="<mxfile host="Electron" modified="2023-06-09T03:31:36.369Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.2.8 Chrome/112.0.5615.165 Electron/24.2.0 Safari/537.36" etag="hMdrX38smwDcLm7Ib4KD" version="21.2.8" type="device" pages="5"><diagram id="07kHJZS3hwJW5_4EwsxT" name="rubik重构">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</diagram><diagram id="kWRgZKNvc_THbxEiSdgt" name="Page-4">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</diagram><diagram id="-Kyxz0P4pjuFrocwjX6N" name="Page-1">1ZrBbqMwEIafhusK2xCHa7Ld7qWnHHp2YQIWBlNjmrBPv6YxDawjZbdaVRopUsLPMLbnGwQ/JGL75vxoRFc96QJUROPiHLHvEaVkSzfua1LGi8K39CKURhY+6Coc5C/wYuzVQRbQrwKt1srKbi3mum0htytNGKNP67CjVutRO1FCIBxyoUL1WRa28uomTa47foIsKz80ZcyvuBFztF9KX4lCnxYSe4im8rCziNgumrT1h+2N1vZu2BzcnPegpurPhb2M++PzCT4Wb6C1/ymnx/8m1OBLbIYXWbucXV36QtlxLr/RQ1vAdKhLtjtV0sKhE/m09+QazmmVbZTbIu/T+HO2fgFvYCycF9Lfzf66hkfQDVgzuu05DfdUfV+nNP2WXpTTok/mNq4WLZJ4TfjWLD+S/1NlXawv7qdZsICFGKx2p9JRIkLBkjWKueZ4OCQBhxdVS40XASfYEKQBglzkFSjZSIuXA2HoQGxCEBXkdadlixlERrGB4CEI5BcGd5HGBmF7C0JvBeZzgRGGDUMWYJDuNqnHDIEn2CDMs1tQaKDRfiooKSQMHwUSUOjAHBEzyND5NhKa6Ffd40WQpvgQhN75ddBW4IWwIRt0EELj7B8moYXA8UEIrXM/tjleBpxxdAxC12xlOyqN2K3xbIsOQ+iZLebb022KD0HomO3YQQGI71AzkqHDEDrmwUqFmAFHx4DGAQNXqF7qFi8GEs8CIg6hVQgA9JXopp/5YNS4MyKvwd4nccX21VxotuZy4z0DvQGFxPOjtC/D8h575z26z7f4CwN7+A0=</diagram><diagram id="H41B7zk6X4BUBCsjhlfd" name="Page-2">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</diagram><diagram id="uoNyBviDe9WB4nL20GPg" name="Page-5">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</diagram></mxfile>" style="background-color: rgb(255, 255, 255);"><defs><clipPath id="mx-clip-734-656-132-44-0"><rect x="734" y="656" width="132" height="44"/></clipPath></defs><g><path d="M 1099.5 370 L 1384.5 370 L 1384.5 590 L 1099.5 590 L 1099.5 410 L 1089.5 410 L 1089.5 400 L 1099.5 400 L 1099.5 390 L 1089.5 390 L 1089.5 380 L 1099.5 380 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 1099.5 380 L 1109.5 380 L 1109.5 390 L 1099.5 390 M 1099.5 400 L 1109.5 400 L 1109.5 410 L 1099.5 410" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-anchor="middle" font-size="12px"><text x="1246.5" y="387.5">cadvisor</text></g><rect x="336.5" y="300" width="274" height="100" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 276px; height: 100px; padding-top: 300px; margin-left: 337px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 274px; height: 100px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: nowrap;"><p style="margin: 0px ; margin-top: 4px ; text-align: center"><i><<Interface>></i><br /><b>Metric</b></p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">+ Update() error</p><p style="margin: 0px ; margin-left: 4px">+ AddTrigger(...Trigger) Metric</p><p style="margin: 0px ; margin-left: 4px"><br /></p></div></div></div></foreignObject><text x="337" y="312" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px"><<Interface>>...</text></switch></g><path d="M 40 320 L 40 265 L 220 265 L 220 320" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 40 320 L 40 435 L 220 435 L 220 320" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 40 320 L 220 320" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 272px; margin-left: 130px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: nowrap;"><b>BaseMetric</b></div></div></div></foreignObject><text x="130" y="284" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">BaseMetric</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 170px; height: 1px; padding-top: 330px; margin-left: 45px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 16px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: nowrap;">attributes</div></div></div></foreignObject><text x="130" y="334" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">attributes</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 170px; height: 1px; padding-top: 350px; margin-left: 46px;"><div data-drawio-colors="color: #808080; " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 16px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(128, 128, 128); line-height: 1.2; pointer-events: none; white-space: nowrap;">trigger []Trigger</div></div></div></foreignObject><text x="46" y="354" fill="#808080" font-family="Helvetica" font-size="12px">trigger []Trigger</text></switch></g><path d="M 40 364 L 220 364" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 170px; height: 1px; padding-top: 378px; margin-left: 45px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 16px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: nowrap;">operations</div></div></div></foreignObject><text x="130" y="382" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">operations</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 170px; height: 1px; padding-top: 412px; margin-left: 46px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 43px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: nowrap;">AddTrigger(...Trigger) Metric<br />Update() error</div></div></div></foreignObject><text x="46" y="415" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">AddTrigger(...Trigger) Metri...</text></switch></g><path d="M 396.5 605 L 396.5 550 L 656.5 550 L 656.5 605" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 396.5 605 L 396.5 765 L 656.5 765 L 656.5 605" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 396.5 605 L 656.5 605" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 557px; margin-left: 527px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: nowrap;"><br /><b>Manager</b></div></div></div></foreignObject><text x="527" y="569" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">
Manager</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 250px; height: 1px; padding-top: 615px; margin-left: 402px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 16px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: nowrap;">attributes</div></div></div></foreignObject><text x="527" y="619" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">attributes</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 250px; height: 1px; padding-top: 643px; margin-left: 403px;"><div data-drawio-colors="color: #808080; " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 31px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(128, 128, 128); line-height: 1.2; pointer-events: none; white-space: nowrap;">PSIConfig<br />Viewer</div></div></div></foreignObject><text x="403" y="646" fill="#808080" font-family="Helvetica" font-size="12px">PSIConfig...</text></switch></g><path d="M 396.5 664 L 656.5 664" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 250px; height: 1px; padding-top: 678px; margin-left: 402px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 16px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: nowrap;">operations</div></div></div></foreignObject><text x="527" y="682" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">operations</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 250px; height: 1px; padding-top: 727px; margin-left: 403px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 73px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: nowrap;">IsRunner() bool<br />Run(context.Context)<br />SetConfig(helper.CnfigHandler) error<br />PreStart(api.Viewer) error<br />Terminate(api.Viewer) error</div></div></div></foreignObject><text x="403" y="730" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">IsRunner() bool...</text></switch></g><rect x="680.75" y="152" width="323.5" height="40" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 326px; height: 40px; padding-top: 152px; margin-left: 681px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 324px; height: 40px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; width: 100%; height: 100%; white-space: nowrap;"><p style="margin: 0px ; margin-top: 4px ; text-align: center"><i style="border-color: var(--border-color);"><<Singleton>></i><b><br /></b></p><p style="margin: 0px ; margin-top: 4px ; text-align: center">expulsionExec</p><hr size="1" /><p style="margin: 0px ; margin-left: 4px"><br /></p></div></div></div></foreignObject><text x="681" y="164" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px"><<Singleton>>...</text></switch></g><rect x="680.75" y="192" width="323.5" height="40" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 326px; height: 40px; padding-top: 192px; margin-left: 681px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 324px; height: 40px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; width: 100%; height: 100%; white-space: nowrap;"><p style="margin: 0px ; margin-top: 4px ; text-align: center"><i style="border-color: var(--border-color);"><<Singleton>></i><b><br /></b></p><p style="margin: 0px ; margin-top: 4px ; text-align: center">resourceAnalysisExec</p><hr size="1" /><p style="margin: 0px ; margin-left: 4px"><br /></p></div></div></div></foreignObject><text x="681" y="204" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px"><<Singleton>>...</text></switch></g><path d="M 680.75 192 L 620.62 192.34" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 611.62 192.39 L 620.59 187.84 L 620.64 196.84 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 220 350 L 326.38 350" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 335.38 350 L 326.38 354.5 L 326.38 345.5 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 730 651 L 730 625 L 870 625 L 870 651" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 730 651 L 730 695 L 870 695 L 870 651" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 730 651 L 870 651" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-weight="bold" pointer-events="none" text-anchor="middle" font-size="11px"><text x="799.5" y="642">PSIConfig</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-734-656-132-44-0)" font-size="12px"><text x="735.5" y="668.5">+ Interval: int</text><text x="735.5" y="682.5">+ Resource: []string</text></g><rect x="1100" y="162" width="274" height="100" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 276px; height: 100px; padding-top: 162px; margin-left: 1100px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 274px; height: 100px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; width: 100%; height: 100%; white-space: nowrap;"><p style="margin: 0px ; margin-top: 4px ; text-align: center"><i><<Interface>></i><br /><b>Analyzer</b></p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">+ MaxCPUUtil([]*PodInfo) *PodInfo</p><p style="margin: 0px ; margin-left: 4px">+ MaxIOBandWidth([]*PodInfo) *PodInfo</p><p style="margin: 0px ; margin-left: 4px">+ MaxMemUtil([]*PodInfo)*PodInfo</p><p style="margin: 0px ; margin-left: 4px"><br /></p></div></div></div></foreignObject><text x="1100" y="174" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px"><<Interface>>...</text></switch></g><rect x="336.5" y="150" width="274" height="100" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 276px; height: 100px; padding-top: 150px; margin-left: 337px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 274px; height: 100px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; width: 100%; height: 100%; white-space: nowrap;"><p style="margin: 0px ; margin-top: 4px ; text-align: center"><i><<Interface>></i><br /><b>Trigger</b></p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">+ Execute(<span style="border-color: var(--border-color); text-align: center;">TriggerFactor</span>) error</p><p style="margin: 0px ; margin-left: 4px">+ SetNext(...Trigger) Trigger</p><p style="margin: 0px ; margin-left: 4px">+ Name() string</p></div></div></div></foreignObject><text x="337" y="162" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px"><<Interface>>...</text></switch></g><rect x="336.5" y="0" width="274" height="100" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 276px; height: 100px; padding-top: 0px; margin-left: 337px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; width: 274px; height: 100px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; width: 100%; height: 100%; white-space: nowrap;"><p style="margin: 0px ; margin-top: 4px ; text-align: center"><i><<Interface>></i><br /><b>TriggerFactor</b></p><hr size="1" /><p style="margin: 0px ; margin-left: 4px">+ Message() string</p><p style="margin: 0px ; margin-left: 4px">+ TargetPods() map[string]*typedef.PodInfo</p><p style="margin: 0px ; margin-left: 4px"><br /></p></div></div></div></foreignObject><text x="337" y="12" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px"><<Interface>>...</text></switch></g><path d="M 473.5 300 L 473.5 252.24" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 480 264.12 L 473.5 251.12 L 467 264.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 274px; margin-left: 474px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; background-color: rgb(255, 255, 255); white-space: nowrap;">Use</div></div></div></foreignObject><text x="474" y="277" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">Use</text></switch></g><path d="M 473.5 150 L 473.5 102.24" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 480 114.12 L 473.5 101.12 L 467 114.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 124px; margin-left: 474px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; background-color: rgb(255, 255, 255); white-space: nowrap;">Use</div></div></div></foreignObject><text x="474" y="127" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">Use</text></switch></g><path d="M 1120 430 L 1120 400 L 1370 400 L 1370 430" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1120 430 L 1120 570 L 1370 570 L 1370 430" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1120 430 L 1370 430" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 407px; margin-left: 1245px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: nowrap;">Manager</div></div></div></foreignObject><text x="1245" y="419" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Manager</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 240px; height: 1px; padding-top: 440px; margin-left: 1125px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 16px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: nowrap;">attributes</div></div></div></foreignObject><text x="1245" y="444" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">attributes</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 240px; height: 1px; padding-top: 465px; margin-left: 1126px;"><div data-drawio-colors="color: #808080; " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 26px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(128, 128, 128); line-height: 1.2; pointer-events: none; white-space: nowrap;">manager.Manager</div></div></div></foreignObject><text x="1126" y="469" fill="#808080" font-family="Helvetica" font-size="12px">manager.Manager</text></switch></g><path d="M 1120 484 L 1370 484" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 240px; height: 1px; padding-top: 498px; margin-left: 1125px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 16px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: nowrap;">operations</div></div></div></foreignObject><text x="1245" y="502" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">operations</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 240px; height: 1px; padding-top: 539px; margin-left: 1126px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 58px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: nowrap;"><p>+ New()<br />+ Start() error<br />+ ContainerInfoV2()<span style="background-color: initial;"> </span></p></div></div></div></foreignObject><text x="1126" y="543" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">+ New()...</text></switch></g><path d="M 0 605 L 0 550 L 250 550 L 250 605" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 0 605 L 0 770 L 250 770 L 250 605" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 0 605 L 250 605" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 557px; margin-left: 125px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: nowrap;"><b>BasePSIMetric</b></div></div></div></foreignObject><text x="125" y="569" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">BasePSIMetric</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 240px; height: 1px; padding-top: 615px; margin-left: 5px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 16px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: nowrap;">attributes</div></div></div></foreignObject><text x="125" y="619" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">attributes</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 240px; height: 1px; padding-top: 668px; margin-left: 6px;"><div data-drawio-colors="color: #808080; " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 81px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(128, 128, 128); line-height: 1.2; pointer-events: none; white-space: nowrap;">*metric.BaseMetric<br />avg10Threshold float64<br />resources []string<br />conservation map[string]*typedef.PodInfo<br />suspicion map[string]*typedef.PodInfo</div></div></div></foreignObject><text x="6" y="671" fill="#808080" font-family="Helvetica" font-size="12px">*metric.BaseMetric...</text></switch></g><path d="M 0 714 L 250 714" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 240px; height: 1px; padding-top: 728px; margin-left: 5px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center; max-height: 16px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: nowrap;">operations</div></div></div></foreignObject><text x="125" y="732" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">operations</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 240px; height: 1px; padding-top: 754px; margin-left: 6px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 28px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: nowrap;">Update() error</div></div></div></foreignObject><text x="6" y="758" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Update() error</text></switch></g><path d="M 393.64 714.03 L 250.24 716.36" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 262.01 709.67 L 249.12 716.38 L 262.22 722.67" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 715px; margin-left: 322px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; background-color: rgb(255, 255, 255); white-space: nowrap;">Use</div></div></div></foreignObject><text x="322" y="718" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">Use</text></switch></g><path d="M 656.5 642.5 L 727.76 642.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 715.88 649 L 728.88 642.5 L 715.88 636" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 643px; margin-left: 693px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; background-color: rgb(255, 255, 255); white-space: nowrap;">Use</div></div></div></foreignObject><text x="693" y="646" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">Use</text></switch></g><path d="M 125 550 L 124.61 437.09" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 131.15 448.95 L 124.6 435.98 L 118.15 449" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 492px; margin-left: 125px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; background-color: rgb(255, 255, 255); white-space: nowrap;">Use</div></div></div></foreignObject><text x="125" y="495" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">Use</text></switch></g><path d="M 1237 262 L 1237 367.76" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 1230.5 355.88 L 1237 368.88 L 1243.5 355.88" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 316px; margin-left: 1237px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; background-color: rgb(255, 255, 255); white-space: nowrap;">Use</div></div></div></foreignObject><text x="1237" y="319" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">Use</text></switch></g><path d="M 1004.25 212 L 1097.76 212" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 1085.88 218.5 L 1098.88 212 L 1085.88 205.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 200px; margin-left: 1050px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; background-color: rgb(255, 255, 255); white-space: nowrap;">Use</div></div></div></foreignObject><text x="1050" y="203" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">Use</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
|
||
\ No newline at end of file
|
||
--
|
||
2.32.1 (Apple Git-133)
|
||
|