netconfcentral logo

openconfig-procmon@2017-09-18



  module openconfig-procmon {

    yang-version 1;

    namespace
      "http://openconfig.net/yang/system/procmon";

    prefix oc-proc;

    import openconfig-extensions {
      prefix oc-ext;
    }
    import openconfig-types {
      prefix oc-types;
    }

    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.";

    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";

    }

    oc-ext:openconfig-version "0.3.0";

    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;
          }  // container state
        }  // list process
      }  // container processes
    }  // grouping procmon-processes-top

    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 uint64;
        units "ns";
        description
          "The time at which this process started,
        reported as nanoseconds since the UNIX epoch.  The
        system must be synchronized such that the start-time
        can be reported accurately, otherwise it should not be
        reported.";
      }

      leaf uptime {
        type oc-types:timeticks64;
        description
          "Amount of time elapsed since this process started.";
      }

      leaf cpu-usage-user {
        type oc-types:timeticks64;
        description
          "CPU time consumed by this process in user mode.";
      }

      leaf cpu-usage-system {
        type oc-types:timeticks64;
        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.";
      }
    }  // grouping procmon-process-attributes-state
  }  // module openconfig-procmon