|
13 | 13 | // limitations under the License. |
14 | 14 |
|
15 | 15 | use model::SingleCgroupModelFieldId; |
16 | | -use render::RenderConfig; |
17 | 16 |
|
18 | 17 | use super::*; |
19 | 18 |
|
20 | | -impl HasRenderConfigForDump for model::SingleCgroupModel { |
21 | | - fn get_render_config_for_dump(field_id: &SingleCgroupModelFieldId) -> RenderConfig { |
22 | | - use common::util::get_prefix; |
23 | | - use model::CgroupCpuModelFieldId::ThrottledPct; |
24 | | - use model::CgroupIoModelFieldId::CostIndebtPct; |
25 | | - use model::CgroupIoModelFieldId::CostIndelayPct; |
26 | | - use model::CgroupIoModelFieldId::CostUsagePct; |
27 | | - use model::CgroupIoModelFieldId::CostWaitPct; |
28 | | - use model::CgroupIoModelFieldId::DbytesPerSec; |
29 | | - use model::CgroupIoModelFieldId::DiosPerSec; |
30 | | - use model::CgroupIoModelFieldId::RbytesPerSec; |
31 | | - use model::CgroupIoModelFieldId::RiosPerSec; |
32 | | - use model::CgroupIoModelFieldId::RwbytesPerSec; |
33 | | - use model::CgroupIoModelFieldId::WbytesPerSec; |
34 | | - use model::CgroupIoModelFieldId::WiosPerSec; |
35 | | - use model::CgroupMemoryModelFieldId::Anon; |
36 | | - use model::CgroupMemoryModelFieldId::File; |
37 | | - use model::CgroupMemoryModelFieldId::Pgactivate; |
38 | | - use model::CgroupMemoryModelFieldId::Pgdeactivate; |
39 | | - use model::CgroupMemoryModelFieldId::Pgfault; |
40 | | - use model::CgroupMemoryModelFieldId::Pglazyfree; |
41 | | - use model::CgroupMemoryModelFieldId::Pglazyfreed; |
42 | | - use model::CgroupMemoryModelFieldId::Pgmajfault; |
43 | | - use model::CgroupMemoryModelFieldId::Pgrefill; |
44 | | - use model::CgroupMemoryModelFieldId::Pgscan; |
45 | | - use model::CgroupMemoryModelFieldId::Pgsteal; |
46 | | - use model::CgroupMemoryModelFieldId::Shmem; |
47 | | - use model::CgroupMemoryModelFieldId::Slab; |
48 | | - use model::CgroupMemoryModelFieldId::Sock; |
49 | | - use model::CgroupMemoryModelFieldId::Swap; |
50 | | - use model::CgroupMemoryModelFieldId::ThpCollapseAlloc; |
51 | | - use model::CgroupMemoryModelFieldId::ThpFaultAlloc; |
52 | | - use model::CgroupMemoryModelFieldId::Total; |
53 | | - use model::CgroupMemoryModelFieldId::WorkingsetActivateAnon; |
54 | | - use model::CgroupMemoryModelFieldId::WorkingsetActivateFile; |
55 | | - use model::CgroupMemoryModelFieldId::WorkingsetNodereclaim; |
56 | | - use model::CgroupMemoryModelFieldId::WorkingsetRefaultAnon; |
57 | | - use model::CgroupMemoryModelFieldId::WorkingsetRefaultFile; |
58 | | - use model::CgroupMemoryModelFieldId::WorkingsetRestoreAnon; |
59 | | - use model::CgroupMemoryModelFieldId::WorkingsetRestoreFile; |
60 | | - use model::CgroupMemoryModelFieldId::Zswap; |
61 | | - use model::CgroupPressureModelFieldId::MemoryFullPct; |
62 | | - use model::CgroupPressureModelFieldId::MemorySomePct; |
63 | | - use model::SingleCgroupModelFieldId::Cpu; |
64 | | - use model::SingleCgroupModelFieldId::Io; |
65 | | - use model::SingleCgroupModelFieldId::Mem; |
66 | | - use model::SingleCgroupModelFieldId::Name; |
67 | | - use model::SingleCgroupModelFieldId::Pressure; |
68 | | - use render::HasRenderConfig; |
69 | | - |
70 | | - let rc = model::SingleCgroupModel::get_render_config_builder(field_id); |
71 | | - match field_id { |
72 | | - Name => rc.indented_prefix(get_prefix(false)), |
73 | | - Cpu(ThrottledPct) => rc.title("Throttled Pct"), |
74 | | - Io(RbytesPerSec) => rc.title("RBytes"), |
75 | | - Io(WbytesPerSec) => rc.title("WBytes"), |
76 | | - Io(DbytesPerSec) => rc.title("DBytes"), |
77 | | - Io(RiosPerSec) => rc.title("R I/O"), |
78 | | - Io(WiosPerSec) => rc.title("W I/O"), |
79 | | - Io(DiosPerSec) => rc.title("D I/O"), |
80 | | - Io(RwbytesPerSec) => rc.title("RW Total"), |
81 | | - Io(CostUsagePct) => rc.title("Cost Usage"), |
82 | | - Io(CostWaitPct) => rc.title("Cost Wait"), |
83 | | - Io(CostIndebtPct) => rc.title("Cost Indebt"), |
84 | | - Io(CostIndelayPct) => rc.title("Cost Indelay"), |
85 | | - Mem(Total) => rc.title("Mem Total"), |
86 | | - Mem(Swap) => rc.title("Mem Swap"), |
87 | | - Mem(Zswap) => rc.title("Mem Zswap"), |
88 | | - Mem(Anon) => rc.title("Mem Anon"), |
89 | | - Mem(File) => rc.title("Mem File"), |
90 | | - Mem(Slab) => rc.title("Mem Slab"), |
91 | | - Mem(Sock) => rc.title("Mem Sock"), |
92 | | - Mem(Shmem) => rc.title("Mem Shmem"), |
93 | | - Mem(Pgfault) => rc.title("Pgfault"), |
94 | | - Mem(Pgmajfault) => rc.title("Pgmajfault"), |
95 | | - Mem(WorkingsetRefaultAnon) => rc.title("Workingset Refault Anon"), |
96 | | - Mem(WorkingsetRefaultFile) => rc.title("Workingset Refault File"), |
97 | | - Mem(WorkingsetActivateAnon) => rc.title("Workingset Activate Anon"), |
98 | | - Mem(WorkingsetActivateFile) => rc.title("Workingset Activate File"), |
99 | | - Mem(WorkingsetRestoreAnon) => rc.title("Workingset Restore Anon"), |
100 | | - Mem(WorkingsetRestoreFile) => rc.title("Workingset Restore File"), |
101 | | - Mem(WorkingsetNodereclaim) => rc.title("Workingset Nodereclaim"), |
102 | | - Mem(Pgrefill) => rc.title("Pgrefill"), |
103 | | - Mem(Pgscan) => rc.title("Pgscan"), |
104 | | - Mem(Pgsteal) => rc.title("Pgsteal"), |
105 | | - Mem(Pgactivate) => rc.title("Pgactivate"), |
106 | | - Mem(Pgdeactivate) => rc.title("Pgdeactivate"), |
107 | | - Mem(Pglazyfree) => rc.title("Pglazyfree"), |
108 | | - Mem(Pglazyfreed) => rc.title("Pglazyfreed"), |
109 | | - Mem(ThpFaultAlloc) => rc.title("THP Fault Alloc"), |
110 | | - Mem(ThpCollapseAlloc) => rc.title("THP Collapse Alloc"), |
111 | | - Pressure(MemorySomePct) => rc.title("Mem Some Pressure"), |
112 | | - Pressure(MemoryFullPct) => rc.title("Mem Pressure"), |
113 | | - _ => rc, |
114 | | - } |
115 | | - .get() |
116 | | - } |
117 | | -} |
118 | | - |
119 | 19 | pub struct Cgroup { |
120 | 20 | opts: GeneralOpt, |
121 | 21 | select: Option<SingleCgroupModelFieldId>, |
@@ -213,6 +113,11 @@ impl Dumper for Cgroup { |
213 | 113 | *jval = print::dump_json(&handle.fields, ctx, cgroup, handle.opts.raw); |
214 | 114 | jval["children"] = json!([]); |
215 | 115 | } |
| 116 | + Some(OutputFormat::OpenMetrics) => write!( |
| 117 | + output, |
| 118 | + "{}", |
| 119 | + print::dump_openmetrics(&handle.fields, ctx, cgroup) |
| 120 | + )?, |
216 | 121 | }; |
217 | 122 | *round += 1; |
218 | 123 | } |
|
0 commit comments