summaryrefslogtreecommitdiffstats
path: root/pcp/ProcessField.h
diff options
context:
space:
mode:
authorNathan Scott <nathans@redhat.com>2021-02-17 14:43:56 +1100
committerNathan Scott <nathans@redhat.com>2021-06-09 17:09:29 +1000
commitc14a45ba359148fa0abe7ab72ed8ea0c1aa1ce28 (patch)
treee1814f53637daab6e8a781e317a3a5a1915a0144 /pcp/ProcessField.h
parentd075d49a0ccd3f311bc0f3d2b4c9f542aff1d613 (diff)
Add a platform for Performance Co-Pilot (PCP) metrics
This introduces an initial platform for extracting metrics using the PCP performance metrics API - PMAPI(3). It can be used via the --enable-pcp=yes configure option. So far I've added support for live localhost metrics only, and only using pre-defined metrics already found in htop. If available, all sampling is performed by pmcd(1) - else, we fallback to htop doing the metric sampling itself (all below the PMAPI). When pmcd is used, it may be configured to run children with elevated privileges, so htop does not need to be setuid (authentication with pmcd is available). Additionally, the PMAPI allows us to support archives (for historical analysis and for automated regression tests in htop). We'll need platform-specific command line argument additions, which isn't yet feasible in htop (not difficult to add though). The goal of this first version is minimal impact in terms of modifying the htop codebase, to introduce key ideas in PCP (metric namespace, metadata, APIs and so on) and give us something to discuss, experiment with and build on.
Diffstat (limited to 'pcp/ProcessField.h')
-rw-r--r--pcp/ProcessField.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/pcp/ProcessField.h b/pcp/ProcessField.h
new file mode 100644
index 00000000..ee03cbaf
--- /dev/null
+++ b/pcp/ProcessField.h
@@ -0,0 +1,50 @@
+#ifndef HEADER_PCPProcessField
+#define HEADER_PCPProcessField
+/*
+htop - pcp/ProcessField.h
+(C) 2014 Hisham H. Muhammad
+(C) 2021 htop dev team
+(C) 2020-2021 Red Hat, Inc. All Rights Reserved.
+Released under the GNU GPLv2, see the COPYING file
+in the source distribution for its full text.
+*/
+
+
+#define PLATFORM_PROCESS_FIELDS \
+ CMINFLT = 11, \
+ CMAJFLT = 13, \
+ UTIME = 14, \
+ STIME = 15, \
+ CUTIME = 16, \
+ CSTIME = 17, \
+ M_SHARE = 41, \
+ M_TRS = 42, \
+ M_DRS = 43, \
+ M_LRS = 44, \
+ M_DT = 45, \
+ CTID = 100, \
+ RCHAR = 103, \
+ WCHAR = 104, \
+ SYSCR = 105, \
+ SYSCW = 106, \
+ RBYTES = 107, \
+ WBYTES = 108, \
+ CNCLWB = 109, \
+ IO_READ_RATE = 110, \
+ IO_WRITE_RATE = 111, \
+ IO_RATE = 112, \
+ CGROUP = 113, \
+ OOM = 114, \
+ PERCENT_CPU_DELAY = 116, \
+ PERCENT_IO_DELAY = 117, \
+ PERCENT_SWAP_DELAY = 118, \
+ M_PSS = 119, \
+ M_SWAP = 120, \
+ M_PSSWP = 121, \
+ CTXT = 122, \
+ SECATTR = 123, \
+ PROC_COMM = 124, \
+ // End of list
+
+
+#endif /* HEADER_PCPProcessField */

© 2014-2024 Faster IT GmbH | imprint | privacy policy