Manually rebuilding an impact graph

Service Impact graphs are regularly updated automatically, and rarely require manual actions. However, in unusual circumstances, the Service Impact data store might have inconsistencies that require a manual of an impact graph to rediscover children of the problem node. You can manually rebuild a subset, rather than performing a rebuild of all service models.

The manual options allow more granular repair to just a subset of entity impact graphs for all service contexts in which the entity participates. This approach can be much faster than repairing all information. However, if a large amount of entity information must be repaired, rebuilding all with one action might be faster.

To update impact dependencies for one or more entity nodes for all service contexts in which they participate, run the following command
zenimpactgraph run update --sb <node_name | node_id | node_path>
         --direction <0 | 1> --depth <0 | integer>
Commands for zenimpactgraph run update are as follows:
  • Specify the subgraph by name, path, or ID.
    --sb=SUBGRAPH, --sub-graph=SUBGRAPH

    The node path must start with /zport/dmd/. Separate multiple nodes with a comma.

  • Specify the maximum traversal depth level of the graph to update.
    --depth=DEPTH

    If no depth is specified, the default is to update all nodes in the graph, regardless of the number. Specify an integer value to limit the maximum levels of the graph to be updated.

  • Specify the traversal direction:
    --direction=DIRECTION

    0 indicates INCOMING, to discover or rediscover all nodes that impact the target node. If no direction is specified, the default is INCOMING.

    1 indicates OUTGOING, to discover or rediscover all nodes that the target node impacts.

  1. Log in to the Control Center master host as a user with serviced CLI privileges.
  2. Connect to the zenimpactstate container as the zenoss user.
    serviced service attach zenimpactstate su - zenoss
  3. Run zenimpactgraph run update with commands.
    See the following examples.
Example 1: Basic command using defaults

The following commands use default values to discover nodes for the target node. The target node is specified by name, vxchnge-vcenter-02.zenoss.loc. All nodes that impact the target node (incoming direction) and all nodes that the target node impacts (outgoing direction) are discovered. All levels of the graph will be updated (unlimited depth).

zenimpactgraph run --update --sb vxchnge-vcnter-02.zenoss.loc

Example 2: Discover outgoing nodes for the named subgraph

The following commands discover all nodes that are impacted by the target node, vxchnge-vcenter-02.zenoss.loc. All levels of the graph will be updated (unlimited depth).

zenimpactgraph run --update --sb vxchnge-vcenter-02.zenoss.loc --direction 1

Example 3: Discover incoming nodes for the named subgraph

The following commands discover all nodes that impact the target node, vSphere, and limit the updates to a depth of 10 levels of the graph.

zenimpactgraph run --update --sb vSphere --direction 0 --depth 10

Example 4: Discover outgoing nodes for the subgraph at the specified path

The following commands discover all nodes that are impacted by the target node, vxchnge-vcenter-02.zenoss.loc, and limit the updates to a depth of 100 levels of the graph.

zenimpactgraph run --update --sb /zport/dmd/Devices/vSphere/devices/vSphere 
--direction 1  --depth 100

Example 5: Discover incoming nodes for the subgraph at the specified path

The following commands discover all nodes that impact the target node, vxchnge-vcenter-02.zenoss.loc. All levels of the graph will be updated (unlimited depth).

zenimpactgraph run -update --sb /zport/dmd/Devices/vSphere/devices/vxchnge-vcenter-02.zenoss.loc 
--direction 0