Overview
The Entity Graph is a component of the ESI Service that stores information about discovered storage system components and the relationships between the components. The graph exposes an HTTP API to enable client applications, such as the ESI SCOM Management Packs, to query the discovered system components and the relationships between them. The ESI Service PowerShell Toolkit also includes cmdlets for querying the Entity Graph, which uses the HTTP API.
Basic concepts
The Entity Graph consists of two kinds of elements, entities, and entity relationships:
An Entity is a representation at a selected time of a discovered system or component, such as storage systems, storage pools, disk drives, and storage volumes. Each Entity in the graph has a unique Entity ID. Entity IDs are persistible, which means that as long as the entity exists, client applications can store and use them. An Entity contains both meta-data that applies to all components, including the Entity ID, and properties that are specific to the type of component that the Entity represents. For example, you can get the AvailableCapacity for a storage pool source entity.
An Entity Relationship is a directional link between two entities in the graph and represents a relationship at a selected point in time between the two components. This models relationships such as a storage system and its enclosures or a storage pool and its associated storage volumes. Each Entity Relationship has a Name that indicates the type of relationship between the components. For example, you can get the PhysicalContainment and LogicalPhysicalAssociation relationship for a source entity and a target entity.
Entity graph classes
The Entity Graph meta-model consists of
only two classes, Entity and
EntityRelationship. Each class
has the following properties:
Entity
An Entity contains both meta-properties that are available on every component as well as properties that are specific to the type of component the property represents.
Name |
Type |
Description |
ID |
String |
Unique identifier that is assigned to each entity in the graph. Client applications use this ID to locate the entities and their relationships to other entities. Client applications do not interpret the format or contents. |
Class |
String |
Type of object that the Entity represents. This is a non-localized programmatic name that only contains alphanumeric characters. |
AncestorClasses |
String array |
Class hierarchy of the Entity that lists the class names starting with the most derived class and up to the top class in the hierarchy. |
Caption |
String |
Short description of the Entity that client applications can only use for end-user display and not interpret as a value. |
FriendlyClass |
String |
Name of the component that the Entity represents, which may be more recognizable to the end user. This is the same value as the Class property if there is no friendly name. Client applications can only use this for end user display and not interpret it as a value. |
FriendlyName |
String |
Name of the component that the Entity represents, which may be more recognizable to the end user. Client applications do not interpret this value but only use it for an end-user display. |
PhysicalPath |
String |
Physical path to the component that the Entity represents. This helps end users identify the component. Client applications do not interpret this value but only use it as an end-user display. |
Properties |
Property array |
Properties of the component that the Entity represents. Each property consists of a Name, Type, and Value. Each type of component or Entity Class has a unique set of properties. For example, SerialNumber on StorageSystem and AvailableCapacity on StoragePool. |
SnapshotTime |
DataTime |
Timestamp of the last time that the information in the entity was synchronized with the component that it represents. Client applications can use this to determine the staleness of the entity information. |
EntityRelationship
An EntityRelationship is a directional link between a source entity and a target entity. It represents a relationship between the components that the entities represent.
Name |
Type |
Description |
Name |
String |
Type of relationship between the components represented by the Source and Target Entities. It can be one of the following values:
|
SourceClass |
String |
Class of the source entity in the relationship. |
SourceID |
String |
ID of the source entity in the relationship. |
TargetClass |
String |
Class of the target entity in the relationship. |
TargetID |
String |
ID of the target entity in the relationship. |