This documentation and the Cisco Observability Platform functionalities it describes are subject to change. Data saved on the platform may disappear and APIs may change without notice.


Entities

The Cisco Observability Platform needs to associate incoming MELT data with entities in Space Fleet, so it defines all of entities it needs in the file spacefleet/objects/fmm/topology/entity-types.json. This file contains an array of fmm:entity object definitions. Each entity is represented by its own fmm:entity object in this file. The following are the entities Space Fleet defines:

  • spacecraft
  • room
  • bridge
  • sick_bay
  • mess_hall
  • intercom
  • shield
  • warp_drive
  • torpedo_tube
  • torpedo

Note: In the following JSON, notice how the entities are:
• Associated with metrics (through the metricTypes attribute)
• Associated with events (through the eventTypes attribute)
• Associated with other entities (through the associationTypes attribute)

[
  {
    "namespace": {
      "name": "spacefleet",
      "version": 1
    },
    "kind": "entity",
    "name": "spacecraft",
    "displayName": "Spacecraft",
    "description": "Represents a spacecraft",
    "lifecycleConfiguration": {
      "purgeTtlInMinutes": 525600,
      "retentionTtlInMinutes": 180
    },
    "attributeDefinitions": {
      "optimized": [
        "spacefleet.spacecraft.name"
      ],
      "required": [
        "spacefleet.spacecraft.name"
      ],
      "attributes": {
        "spacefleet.spacecraft.name": {
          "type": "string",
          "description": "Name of the spacecraft"
        }
      }
    },
    "associationTypes": {
      "common:consists_of": [
        "spacefleet:room",
        "spacefleet:torpedo_tube",
        "spacefleet:shield",
        "spacefleet:warp_drive"
      ]
    },
    "metricTypes": [
      "spacefleet:torpedo_count",
      "spacefleet:shield_level",
      "spacefleet:speed",
      "spacefleet:earth_day",
      "spacefleet:newsfeed_count",
      "spacefleet:test_metric"
    ],
    "eventTypes": [
      "spacefleet:newsfeed",
      "spacefleet:torpedoes_launched",
      "spacefleet:torpedoes_reloaded"
    ]
  },
  {
    "namespace": {
      "name": "spacefleet",
      "version": 1
    },
    "kind": "entity",
    "name": "room",
    "displayName": "Spacecraft Room",
    "description": "Represents a room on spacecraft",
    "lifecycleConfiguration": {
      "purgeTtlInMinutes": 525600,
      "retentionTtlInMinutes": 180
    },
    "attributeDefinitions": {
      "optimized": [
        "spacefleet.spacecraft.name",
        "spacefleet.room.name"
      ],
      "required": [
        "spacefleet.spacecraft.name",
        "spacefleet.room.name"
      ],
      "attributes": {
        "spacefleet.spacecraft.name": {
          "type": "string",
          "description": "Name of the spacecraft"
        },
        "spacefleet.room.name": {
          "type": "string",
          "description": "Name of the room"
        }
      }
    },
    "associationTypes": {
      "common:has": [
        "spacefleet:intercom",
        "k8s:cluster"
      ]
    },
    "metricTypes": [
      "spacefleet:current_occupancy"
    ]
  },
  {
    "namespace": {
      "name": "spacefleet",
      "version": 1
    },
    "kind": "entity",
    "name": "bridge",
    "displayName": "Bridge Room",
    "description": "Represents a bridge room on spacecraft",
    "parentType": "spacefleet:room",
    "lifecycleConfiguration": {
      "purgeTtlInMinutes": 525600,
      "retentionTtlInMinutes": 180
    },
    "attributeDefinitions": {
      "attributes": {}
    },
    "associationTypes": {},
    "metricTypes": [
      "spacefleet:officer_count",
      "spacefleet:screens_inuse"
    ]
  },
  {
    "namespace": {
      "name": "spacefleet",
      "version": 1
    },
    "kind": "entity",
    "name": "sick_bay",
    "displayName": "Sick Bay Room",
    "description": "Represents a sick bay on spacecraft",
    "parentType": "spacefleet:room",
    "lifecycleConfiguration": {
      "purgeTtlInMinutes": 525600,
      "retentionTtlInMinutes": 180
    },
    "attributeDefinitions": {
      "attributes": {}
    },
    "associationTypes": {}
  },
  {
    "namespace": {
      "name": "spacefleet",
      "version": 1
    },
    "kind": "entity",
    "name": "mess_hall",
    "displayName": "Mess Hall Room",
    "description": "Represents a mess hall on spacecraft",
    "parentType": "spacefleet:room",
    "lifecycleConfiguration": {
      "purgeTtlInMinutes": 525600,
      "retentionTtlInMinutes": 180
    },
    "attributeDefinitions": {
      "attributes": {}
    },
    "associationTypes": {},
    "metricTypes": [
      "spacefleet:suggestion_count"
    ],
    "eventTypes": [
      "spacefleet:suggestion"
    ]
  },
  {
    "namespace": {
      "name": "spacefleet",
      "version": 1
    },
    "kind": "entity",
    "name": "intercom",
    "displayName": "Spacecraft intercom",
    "description": "Represents an intercom",
    "lifecycleConfiguration": {
      "purgeTtlInMinutes": 525600,
      "retentionTtlInMinutes": 180
    },
    "attributeDefinitions": {
      "optimized": [
        "spacefleet.spacecraft.name",
        "spacefleet.room.name"
      ],
      "required": [
        "spacefleet.spacecraft.name",
        "spacefleet.room.name"
      ],
      "attributes": {
        "spacefleet.spacecraft.name": {
          "type": "string",
          "description": "Spacecraft name"
        },
        "spacefleet.room.name": {
          "type": "string",
          "description": "Room name"
        }
      }
    },
    "associationTypes": {},
    "eventTypes": [
      "spacefleet:intercom_message"
    ]
  },
  {
    "namespace": {
      "name": "spacefleet",
      "version": 1
    },
    "kind": "entity",
    "name": "shield",
    "displayName": "Spacecraft Shield",
    "description": "Represents a shield",
    "lifecycleConfiguration": {
      "purgeTtlInMinutes": 525600,
      "retentionTtlInMinutes": 180
    },
    "attributeDefinitions": {
      "optimized": [
        "spacefleet.spacecraft.name",
        "spacefleet.shield.id"
      ],
      "required": [
        "spacefleet.spacecraft.name",
        "spacefleet.shield.id"
      ],
      "attributes": {
        "spacefleet.spacecraft.name": {
          "type": "string",
          "description": "Spacecraft name"
        },
        "spacefleet.shield.id": {
          "type": "string",
          "description": "Shield Id"
        }
      }
    },
    "associationTypes": {},
    "metricTypes": [
      "spacefleet:shield_level",
      "spacefleet:shield_event_count"
    ],
    "eventTypes": [
      "spacefleet:shield_event",
      "spacefleet:shield_critical"
    ]
  },
  {
    "namespace": {
      "name": "spacefleet",
      "version": 1
    },
    "kind": "entity",
    "name": "warp_drive",
    "displayName": "Spacecraft warp drive",
    "description": "Represents a warp drive",
    "lifecycleConfiguration": {
      "purgeTtlInMinutes": 525600,
      "retentionTtlInMinutes": 180
    },
    "attributeDefinitions": {
      "optimized": [
        "spacefleet.spacecraft.name"
      ],
      "required": [
        "spacefleet.spacecraft.name"
      ],
      "attributes": {
        "spacefleet.spacecraft.name": {
          "type": "string",
          "description": "Spacecraft name"
        }
      }
    },
    "associationTypes": {},
    "metricTypes": [
      "spacefleet:matter_level",
      "spacefleet:antimatter_level",
      "spacefleet:trip_count"
    ]
  },
  {
    "namespace": {
      "name": "spacefleet",
      "version": 1
    },
    "kind": "entity",
    "name": "torpedo_tube",
    "displayName": "Torpedo Tube",
    "description": "Represents a torpedo tube on the spacecraft",
    "lifecycleConfiguration": {
      "purgeTtlInMinutes": 525600,
      "retentionTtlInMinutes": 180
    },
    "attributeDefinitions": {
      "optimized": [
        "spacefleet.spacecraft.name",
        "spacefleet.torpedo_tube.id"
      ],
      "required": [
        "spacefleet.spacecraft.name",
        "spacefleet.torpedo_tube.id"
      ],
      "attributes": {
        "spacefleet.spacecraft.name": {
          "type": "string",
          "description": "Name of the spacecraft"
        },
        "spacefleet.torpedo_tube.id": {
          "type": "string",
          "description": "Id of the torpedo tube"
        }
      }
    },
    "associationTypes": {
      "common:consists_of": [
        "spacefleet:torpedo"
      ]
    },
    "metricTypes": [
      "spacefleet:torpedo_count"
    ]
  },
  {
    "namespace": {
      "name": "spacefleet",
      "version": 1
    },
    "kind": "entity",
    "name": "torpedo",
    "displayName": "Torpedo",
    "description": "Represents a torpedo on the spacecraft",
    "lifecycleConfiguration": {
      "purgeTtlInMinutes": 525600,
      "retentionTtlInMinutes": 180
    },
    "attributeDefinitions": {
      "optimized": [
        "spacefleet.spacecraft.name",
        "spacefleet.torpedo_tube.id",
        "spacefleet.torpedo.id"
      ],
      "required": [
        "spacefleet.spacecraft.name",
        "spacefleet.torpedo_tube.id",
        "spacefleet.torpedo.id"
      ],
      "attributes": {
        "spacefleet.spacecraft.name": {
          "type": "string",
          "description": "Name of the spacecraft"
        },
        "spacefleet.torpedo_tube.id": {
          "type": "string",
          "description": "Id of the torpedo tube"
        },
        "spacefleet.torpedo.id": {
          "type": "string",
          "description": "Name of the torpedo"
        }
      }
    },
    "associationTypes": {},
    "metricTypes": [
      "spacefleet:speed"
    ]
  }
]

Space Fleet includes the fmm:entity objects in its manifest, spacefleet/manifest.json, in the dependencies and objects arrays:

  1. In the dependencies array, line 3 pulls in the fmm component, which is what the fmm:entity object depends on:

    "dependencies": [
        "dashui",
        "fmm",
        "k8s",
        "zodiac",
        "codex",
        "healthrule",
        "iam"
    ],
    
  2. In the objects array, these lines pull in the file that contains the fmm:entity definitions:

    "objects": [
    {
        "type": "fmm:entity",
        "objectsFile": "objects/fmm/topology/entity-types.json"
    }
    ]
    

Learn More