181 lines
4.2 KiB
YANG
181 lines
4.2 KiB
YANG
module openconfig-procmon {
|
|
|
|
yang-version "1";
|
|
|
|
// namespace
|
|
namespace "http://openconfig.net/yang/system/procmon";
|
|
|
|
prefix "oc-proc";
|
|
|
|
|
|
// import some basic types
|
|
import openconfig-extensions { prefix oc-ext; }
|
|
import openconfig-types { prefix oc-types; }
|
|
import openconfig-yang-types { prefix oc-yang; }
|
|
|
|
|
|
// meta
|
|
organization "OpenConfig working group";
|
|
|
|
contact
|
|
"OpenConfig working group
|
|
www.openconfig.net";
|
|
|
|
description
|
|
"This module provides data definitions for process health
|
|
monitoring of one or more processes running on the system.";
|
|
|
|
oc-ext:openconfig-version "0.4.0";
|
|
|
|
revision "2019-03-15" {
|
|
description
|
|
"Update process start time to be an absolute timestamp,
|
|
ensure that the units for CPU time are expressed correctly.
|
|
Update cpu-usage leaves to commonly use counter64 for consumed
|
|
CPU time.";
|
|
reference "0.4.0";
|
|
}
|
|
|
|
revision "2018-11-21" {
|
|
description
|
|
"Add OpenConfig module metadata extensions.";
|
|
reference "0.3.1";
|
|
}
|
|
|
|
revision "2017-09-18" {
|
|
description
|
|
"Updated to use OpenConfig types modules";
|
|
reference "0.3.0";
|
|
}
|
|
|
|
revision "2017-07-06" {
|
|
description
|
|
"Move to oc-inet types, add IETF attribution, add RADIUS
|
|
counters, changed password leaf names to indicate hashed";
|
|
reference "0.2.0";
|
|
}
|
|
|
|
revision "2017-01-29" {
|
|
description
|
|
"Initial public release";
|
|
reference "0.1.0";
|
|
}
|
|
|
|
// OpenConfig specific extensions for module metadata.
|
|
oc-ext:regexp-posix;
|
|
oc-ext:catalog-organization "openconfig";
|
|
oc-ext:origin "openconfig";
|
|
|
|
// grouping statements
|
|
|
|
grouping procmon-processes-top {
|
|
description
|
|
"Top level grouping for attributes for processes.";
|
|
|
|
container processes {
|
|
description
|
|
"Parameters related to all monitored processes";
|
|
|
|
list process {
|
|
key "pid";
|
|
config false;
|
|
description
|
|
"List of monitored processes";
|
|
|
|
leaf pid {
|
|
type leafref {
|
|
path "../state/pid";
|
|
}
|
|
description
|
|
"Reference to the process pid key";
|
|
}
|
|
|
|
container state {
|
|
config false;
|
|
description
|
|
"State parameters related to monitored processes";
|
|
|
|
uses procmon-process-attributes-state;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
grouping procmon-process-attributes-state {
|
|
description
|
|
"Attributes state definitions for a process";
|
|
|
|
leaf pid {
|
|
type uint64;
|
|
description
|
|
"The process pid";
|
|
}
|
|
|
|
leaf name {
|
|
type string;
|
|
description
|
|
"The process name";
|
|
}
|
|
|
|
leaf-list args {
|
|
type string;
|
|
description
|
|
"Current process command line arguments. Arguments with
|
|
a parameter (e.g., --option 10 or -option=10) should be
|
|
represented as a single element of the list with the
|
|
argument name and parameter together. Flag arguments, i.e.,
|
|
those without a parameter should also be in their own list
|
|
element.";
|
|
}
|
|
|
|
leaf start-time {
|
|
type oc-types:timeticks64;
|
|
description
|
|
"The time at which this process started,
|
|
relative to the UNIX epoch. The system must be
|
|
synchronized such that the start-time can be
|
|
reported accurately, otherwise it should not be reported.";
|
|
}
|
|
|
|
leaf cpu-usage-user {
|
|
type oc-yang:counter64;
|
|
units "nanoseconds";
|
|
description
|
|
"CPU time consumed by this process in user mode in
|
|
nanoseconds.";
|
|
}
|
|
|
|
leaf cpu-usage-system {
|
|
type oc-yang:counter64;
|
|
units "nanoseconds";
|
|
description
|
|
"CPU time consumed by this process in kernel mode.";
|
|
}
|
|
|
|
leaf cpu-utilization {
|
|
type oc-types:percentage;
|
|
description
|
|
"The percentage of CPU that is being used by the process.";
|
|
}
|
|
|
|
leaf memory-usage {
|
|
type uint64;
|
|
units "bytes";
|
|
description
|
|
"Bytes allocated and still in use by the process";
|
|
}
|
|
|
|
leaf memory-utilization {
|
|
type oc-types:percentage;
|
|
description
|
|
"The percentage of RAM that is being used by the process.";
|
|
}
|
|
}
|
|
|
|
// augment statements
|
|
|
|
// rpc statements
|
|
|
|
// notification statements
|
|
}
|