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:
spacecraftroombridgesick_baymess_hallintercomshieldwarp_drivetorpedo_tubetorpedo
Note: In the following JSON, notice how the entities are:
• Associated with metrics (through themetricTypesattribute)
• Associated with events (through theeventTypesattribute)
• Associated with other entities (through theassociationTypesattribute)
[
{
"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:
In the
dependenciesarray, line 3 pulls in thefmmcomponent, which is what thefmm:entityobject depends on:"dependencies": [ "dashui", "fmm", "k8s", "zodiac", "codex", "healthrule", "iam" ],In the
objectsarray, these lines pull in the file that contains thefmm:entitydefinitions:"objects": [ { "type": "fmm:entity", "objectsFile": "objects/fmm/topology/entity-types.json" } ]