Managed Entity and Task Resource ModelsFor every single resource managed by the API provide a JSON based representation of the managed entities and tasks. The PM API is partially an entity-centric interface as it provides services on the 3 main resources of the ABEs: • MeasurementProductionJob • MeasurementCollectionJob • AdhocCollection The picture below presents an overall view of the Information Model of the Performance Management Monitoring Interface: 
measurementCollectionJobA Measurement Collection Job is used to control the periodic collection of performance indicators, implemented as a sub-entity of the PM Measurement Job. A PM measurement job is the administrative entity defined by a client application to perform a periodic activity related to PM data. The PM activities may be production of measurements, collection of measurements or PM objective monitoring (scheduled evaluation of thresholds). In each of these cases, the PM measurement job will include the following: • A set of requested performance indicators • A network/service scope defining a subset of the network or a subset of the service catalog • Scheduling parameters • Specific activity parameters, related to collection, production or objective monitoring Below is the JSON Resource Model for "measurementCollectionJob". { "id": "collJob001", "creationTime": "11-26-2014 16:00:00 +0530", "lastModifiedTime": "11-26-2014 16:00:00 +0530", "adminState": "UNLOCKED", "jobPriority": "5", "executionState": "EXECUTING", "scheduleDefinition": { "type": "RecurringScheduleDefinition", "scheduleInfo": { "scheduleDefinitionStartTime": "11-26-2013 16:00:00 +0530", "scheduleDefinitionEndTime": "11-26-2014 16:00:00 +0530" } }, "consumingApplicationId": "CONSUMER001", "producingApplicationId": "NE001", "granularity": "G_15MN", "monitoredObjectsCriteria": { "type": "MonitoredClassCriteria", "monitoredObjectInfo": { "monitoredObjectClass": "SDH-Route" } }, "protocolTransferData": { "transportProtocol": "FILE_TRANSFER", "fileTransferData": { "fileLocation": "\\pm pmdata", "fileFormat": "XML", "compressionType": "NO_COMPRESSION", "retentionDuration": { "units": "MINUTES", "amount": "180" }, "packingType": "NO_PACKING" } }, "reportingPeriod": "R_15MN", "outputFormat": "3GPP", "performanceIndicatorGroup": [ { "name": "TRANSPORT01" }, { "name": "TRANSPORT02" } ], "performanceIndicatorSpecification": [ { "name": "ES" }, { "name": "SES" }, { "name": "UAS" }, { "name": "BBE" }, { "name": "FEBBE" }, { "name": "FEES" }, { "name": "FESES" }, { "name": "FEUAS" }, { "name": "UASBID" }, { "name": "LINK_AVAIL_PCT" } ] } |
measurementProductionJobPerformance measurements production functionality is about controlling the generation of indicators, the equivalent of PM Control in MTOSI. Production instructions are usually set in the set-up of a PM project. Changes are usually required for new versions of network elements or other kinds of network changes. The PM Production Interface Service supports to flavors of operations: • Production only • Production and Collection - A mode that supports the creation and the deletion of both PM Production and PM Collection, similarly to some of the existing standards (3GPP, OSS/J) Below is the JSON Resource model for measurementProductionJob. { "id": "prodJob001", "creationTime": "11-26-2013 16:00:00 +0530", "lastModifiedTime": "11-26-2013 16:00:00 +0530", "adminState": "UNLOCKED", "jobPriority": "5", "executionState": "EXECUTING", "scheduleDefinition": { "type": "RecurringScheduleDefinition", "scheduleInfo": { "scheduleDefinitionStartTime": "11-26-2013 16:00:00 +0530", "scheduleDefinitionEndTime": "11-26-2014 16:00:00 +0530" } }, "consumingApplicationId": "CONSUMER001", "producingApplicationId": "NE001", "granularity": "G_15MN", "monitoredObjectsCriteria": { "type": "MonitoredClassCriteria", "monitoredObjectInfo": { "monitoredObjectClass": "SDH-Route" } }, "protocolTransferData": { "transportProtocol": "FILE_TRANSFER", "fileTransferData": { "fileLocation": "\\pm pmdata", "fileFormat": "XML", "compressionType": "NO_COMPRESSION", "retentionDuration": { "units": "MINUTES", "amount": "180" }, "packingType": "NO_PACKING" } }, "performanceIndicatorGroup": [ { "name": "TRANSPORT01" }, { "name": "TRANSPORT02" } ], "performanceIndicatorSpecification": [ { "name": "ES" }, { "name": "SES" }, { "name": "UAS" }, { "name": "BBE" }, { "name": "FEBBE" }, { "name": "FEES" }, { "name": "FESES" }, { "name": "FEUAS" }, { "name": "UASBID" }, { "name": "LINK_AVAIL_PCT" } ] } |
adhocCollectionAd-hoc collection is an on-demand collection method of Performance measurements results from a consuming application, requesting spontaneously a set of data for a set of network or service testing resources for a given temporal context. As the ad-hoc query is a single isolated request, its lifecycle is much simpler and isolated, having a request-response nature. A PM query for collecting performance indicators of a certain time range. AdhocCollections have no schedule. Below is the JSON Resource Model for "adhocCollection". { "id": "adhocJob001", "creationTime": "11-26-2014 16:00:00 +0530", "lastModifiedTime": "11-26-2014 16:00:00 +0530", "adminState": "UNLOCKED", "jobPriority": "5", "executionState": "EXECUTING", "consumingApplicationId": "CONSUMER001", "producingApplicationId": "NE001", "granularity": "G_15MN", "monitoredObjectsCriteria": { "type": "MonitoredClassCriteria", "monitoredObjectInfo": { "monitoredObjectClass": "SDH-Route" } }, "protocolTransferData": { "transportProtocol": "FILE_TRANSFER", "fileTransferData": { "fileLocation": "\\pm pmdata", "fileFormat": "XML", "compressionType": "NO_COMPRESSION", "retentionDuration": { "units": "MINUTES", "amount": "180" }, "packingType": "NO_PACKING" } }, "collectionPeriod": { "units": "MINUTES", "amount": "120" }, "outputFormat": "3GPP", "performanceIndicatorGroup": [ { "name": "TRANSPORT01" }, { "name": "TRANSPORT02" } ], "performanceIndicatorSpecification": [ { "name": "ES" }, { "name": "SES" }, { "name": "UAS" }, { "name": "BBE" }, { "name": "FEBBE" }, { "name": "FEES" }, { "name": "FESES" }, { "name": "FEUAS" }, { "name": "UASBID" }, { "name": "LINK_AVAIL_PCT" } ] } |
trackingRecordThe measurement job has associated tracking record objects to log and audit the lifecycle of the measurement job. Allows the tracking of modifications on the measurement job. The tracking records should not be returned by default with the measurement job to allow retrieving the job without the tracking records. Whether the tracking records are stored with the measurement job or outside of it is implementation specific. Below is the JSON Resource Model for "trackingRecord". { "id": "1", "jobId": "collJob001", "jobType": "measurementCollectionJob", "description": "measurementCollectionJobCreated successfully", "time": "11-26-2014 16:00:00 +0530", "userId": "root", "systemId": "tmfPm" } |
getSupportedObjectClassesTaskThis operation provides the list of object classes supported by the network interface { "supportedObjectClasses": [ "Blade", "VC4", "E1-Link" ] } |
getSupportedObjectsTaskThis operation provides the list of object instances supported by the interface.If an object class is provided in input, only the object instances related to the input class will be returned. { "supportedObjects": { "Object": [ "/md1/Node1", "/md1/Node1/If1" ] } } |
getSupportedIndicatorGroupsTaskThis operation provides the list of indicator groups supported by the interface for the class provided in input { "supportedIndicatorGroups": [ "Groups_1", "Groups_2" ]} |
getSupportedIndicatorsTaskThis operation provides the list of indicator instances supported by the interface fpr the provided class and/or indicator group.If the indicator group is provided in input, only the indicator instances related to the input class and this group will be returned. { "supportedIndicators": [ "SES", "BBE" ]} |
getSupportedTransportTaskThis operation provides the transport supported by the network interface. { "supportedTransport": [ "SFTP", "TFTP" ] } |
getSupportedFileFormatTaskThis operation provides the file format supported by the network interface. { "supportedFileFormat": [ "3GPP", "MTOSI" ] } |
getCommonIndicatorGroupsGranularitiesTaskThis operation provides the list of granularities which are common to a set of indicator groups. { "commonGranularities": [ "G_15MN", "G_30MN" ] } |
getCommonIndicatorsGranularitiesTaskThis operation provides the list of granularities which are common to a set of indicators. { "commonGranularities ": [ "G_15MN", "G_30MN" ] } |
listAvailableFilesTaskThis operation returns all files generated by the server and available for download. This operation is particularly useful in case of loss of communications as it allows the client to know the files available for which notifications might have been missed. { "JobId": "1234", "beginTime": "19_08_2013_23:00:00", "endTime": "19_08_2013_23:30:00", "FileInfo": [ "JOB1234_YYY_19_08_2013_23:15:00", "JOB1234_YYY_19_08_2013_23:30:00" ] } |
Definitions and alternativesschedule definitionA schedule object is attached to the measurement job to define the job scheduling. This is an abstract and can be of the following types: performance group and indicatorA Performance Indicator Specification holds the definition of the requested Performance indicator including its name, value type, collection type, description and units. A Performance Indicator Group is a set of performance indicators that are reported as a group by an Element Manager or a Network Element. Other common terms in the industry are Counter Set or Counter Group. A Performance Indicator Group Specification is the logical group of the Performance Indicator Specification objects that compose a Performance Indicator Group. The Performance Indicator Group Specification has a name (string) and it can (optionally) hold the individual performance indicator specification objects. A Measurement Job, at the base entity level, can define its scope of requested indicators in one of two ways: - By specifying a list of performance indicator group specification objects. This will be more common for some technologies such as Mobile and IP. In some cases, interfaces may even use just the indicator group names without using the underlying indicators. For these cases, it is assumed that the underlying indicator specifications are standard and agreed on by both parties of the interface.
- By specifying a list of specific performance indicator specification objects. This may be used for cases where equipment vendors do not support performance indicator groups or for service layer indicators where the performance indicator groups may not exist.
supported enumerationsENUMERATIONS | SUPPORTED VALUES | DEFAULT | AdminState | LOCKED,UNLOCKED | UNLOCKED | ExecutionState | EXECUTNG, FAILED | EXECUTING | Granularity | G_1MN,G_5MN,G_15MNN,G_30MN,G_1HR,G_24H,G_1M,G_1Y, NA | | ReportingPeriod | R_1MN,R_5MN,R_15MN,R_30MN,R_1HR,R_24H,NA | | FileFormat | 3GPP, MTOSI | | OutputFormat | 3GPP, MTOSI | | TransportProtocol | Any string value | FILE_TRANSFER |
Monitored objects criteria MonitoredObjectCriteria is an abstract class. It is transformed to a datatype in the implementation.
• monitoredObjectClass: (String, Optional) A monitored object class for specifying the set of instances that are referenced by a PM query. • objectInstanceFilter: (Filter, Optional) A filter that can be used in conjunction with the monitored object class for specifying the set of instances that are referenced by a PM query. { "monitoredObjectsCriteria": { "type": "MonitoredClassCriteria", "monitoredObjectInfo": { "monitoredObjectClass": "SDH-Route", "objectInstanceFilter": "route001,route010" } } |
STATE MACHINE FOR ADMIN STATE & EXECUTION STATEThere are two state variables for each of the three jobs. ADMIN JOB STATE MACHINE:Possible states are LOCKED and UNLOCKED. The default value when any job is created it shall be UNLOCKED. The operation Resume (PATCH) shall put the admin state to UNLOCKED. And the operation Suspend (PATCH) shall put the admin state to LOCKED. Production Job State Machine with ScheduleThe following diagram depicts the state machine and notifications for a Performance Measurement Production Job with an attached schedule.  Production Job State Machine without ScheduleThe following diagram depicts the state machine and notifications for a Performance Measurement Production Job without an attached schedule.  Collection Job State Machine with ScheduleThe following diagram depicts the state machine and notifications for a Performance Measurement Collection Job with an attached schedule.  Collection Job State Machine without ScheduleThe following diagram depicts the state machine and notifications for a Performance Measurement Collection Job without any attached schedule.  Notification Resource Models For every single event supported by the API provide a JSON based representation of the managed event. You can start with an XML representation but remember that the default representation will be JSON. Remember that the Pub/Sub models are common and described in the TMF REST Design Guidelines. For example the SMAPI 2.0 use the following Management Report Event representation:
filesReadyMeasurementCollectionJobService and AdhocCollectionService shall emit the notification "filesReady", when the file has been generated. { "event": { "id": "1", "compressionType": "NO_COMPRESSION", "packingType": "NO_PACKING", "fileInfo": { "fileName": "SDH-NE_SDH-Route_20131126163000+0530_900.csv", "fileLocation": "/pm/pmdata/collJob001/", "readyTime": "11-26-2014 16:30:00 +0530" }, "fileTransferStatus": "COMPLETE" }, "eventType": "FilesReady" } |
filesPreparationErrorMeasurementCollectionJobService and AdhocCollectionService shall emit the notification "filesPreparationError", when the file cannot be generated due to any reason. { "event": { "id": "1", "compressionType": "NO_COMPRESSION", "packingType": "NO_PACKING", "fileInfo": { "fileName": "SDH-NE_SDH-Route_20131126163000+0530_900.csv", "fileLocation": "/pm/pmdata/collJob001/", "readyTime": "11-26-2014 16:30:00 +0530" }, "reason": " filePreparationErrorReason ", "description": " prepation error for link down " }, "eventType": "FilesPreparationError" } |
adhocCollectionAVCNNotification of the changes to adhocCollection for the following attributes: - lastModifiedTime
- AdminState
- jobPriority
- executionstate
- scheduleDef
- Id
- sourceTime
ObjectType REQUEST | { "lastModifiedTime": "", "AdminState": "UNLOCKED", "jobPriority": "5", "executionState" : "Executing", "scheduleDefinition": { "type": "RecurringScheduleDefinition", "scheduleInfo": { "scheduleDefinitionStartTime": "11-26-2013 16:00:00 +0530", "scheduleDefinitionEndTime": "11-26-2014 16:00:00 +0530" } }, "id": "collJob001", "sourceTime" : "11-26-2014 16:00:00 +0530", "ObjectType" : "AdhocCollection"} |
measurementCollectionJobAVCNNotification of the changes to measurementCollectionJob for the following attributes:- reportingPeriod
- granularity
- monitoredObjectsCriteria
- AdminState
- jobPriority
- executionstate
- scheduleDef
- Id
- sourceTime
ObjectType { "reportingPeriod": "R_15M", "granularity": "G_15M", "monitoredObjectsCriteria": { "type": "MonitoredClassCriteria", "monitoredObjectInfo": { "monitoredObjectClass": "SDH-Route" } }, "AdminState": "UNLOCKED", "jobPriority": "5", "executionState" : "Executing", "scheduleDefinition": { "type": "RecurringScheduleDefinition", "scheduleInfo": { "scheduleDefinitionStartTime": "11-26-2013 16:00:00 +0530", "scheduleDefinitionEndTime": "11-26-2014 16:00:00 +0530" } }, "id": "collJob001", "sourceTime" : "11-26-2014 16:00:00 +0530", "ObjectType" : "AdhocCollection"}
|
measurementProductionJobAVCNNotification of the changes to measurementProductionJob for the following attributes:- granularity
- monitoredObjectsCriteria
- AdminState
- jobPriority
- executionstate
- scheduleDef
- Id
- sourceTime
ObjectType { "granularity": "G_15M", "monitoredObjectsCriteria": { "type": "MonitoredClassCriteria", "monitoredObjectInfo": { "monitoredObjectClass": "SDH-Route" } }, "AdminState": "UNLOCKED", "jobPriority": "5", "executionState" : "Executing", "scheduleDefinition": { "type": "RecurringScheduleDefinition", "scheduleInfo": { "scheduleDefinitionStartTime": "11-26-2013 16:00:00 +0530", "scheduleDefinitionEndTime": "11-26-2014 16:00:00 +0530" } }, "id": "collJob001", "sourceTime" : "11-26-2014 16:00:00 +0530", "ObjectType" : "AdhocCollection"}
|
measurementCollectionJobOCNNotification of the creation of measurementCollectionJob. { "id": "collJob001", "creationTime": "11-26-2014 16:00:00 +0530", "lastModifiedTime": "11-26-2014 16:00:00 +0530", "adminState": "2", "jobPriority": "5", "executionState": "ExecutionState", "scheduleDefinition": { "type": "RecurringScheduleDefinition", "scheduleInfo": { "scheduleDefinitionStartTime": "11-26-2013 16:00:00 +0530", "scheduleDefinitionEndTime": "11-26-2014 16:00:00 +0530" } }, "consumingApplicationId": "CONSUMER001", "producingApplicationId": "NE001", "reportingPeriod": "R_15M", "granularity": "G_15M", "monitoredObjectsCriteria": { "type": "MonitoredClassCriteria", "monitoredObjectInfo": { "monitoredObjectClass": "SDH-Route" } }, "protocolTransferData": { "transportProtocol": "FILE_TRANSFER", "fileTransferData": { "fileLocation": "\\pm pmdata", "fileFormat": "XML", "compressionType": "NO_COMPRESSION", "retentionDuration": { "units": "MINUTES", "amount": "180" }, "packingType": "NO_PACKING" } }, "reportingPeriod": "R_15M", "outputFormat": "3GPP", "performanceIndicatorGroup": [ { "name": "TRANSPORT01" }, { "name": "TRANSPORT02" } ], "performanceIndicatorSpecification": [ { "name": "ES" }, { "name": "SES" }, { "name": "UAS" }, { "name": "BBE" }, { "name": "FEBBE" }, { "name": "FEES" }, { "name": "FESES" }, { "name": "FEUAS" }, { "name": "UASBID" }, { "name": "LINK_AVAIL_PCT" } ] }, "sourceTime" : "11-26-2014 16:00:00 +0530", "ObjectType" : "AdhocCollection" }
|
measurementProductionJobOCNNotification of the creation of measurementProductionJob. { "id": "prodJob001", "creationTime": "11-26-2013 16:00:00 +0530", "lastModifiedTime": "11-26-2013 16:00:00 +0530", "adminState": "2", "jobPriority": "5", "executionState": "ExecutionState", "scheduleDefinition": { "type": "RecurringScheduleDefinition", "scheduleInfo": { "scheduleDefinitionStartTime": "11-26-2013 16:00:00 +0530", "scheduleDefinitionEndTime": "11-26-2014 16:00:00 +0530" } }, "consumingApplicationId": "CONSUMER001", "producingApplicationId": "NE001", "granularity": "G_15M", "monitoredObjectsCriteria": { "type": "MonitoredClassCriteria", "monitoredObjectInfo": { "monitoredObjectClass": "SDH-Route" } }, "protocolTransferData": { "transportProtocol": "FILE_TRANSFER", "fileTransferData": { "fileLocation": "\\pm pmdata", "fileFormat": "XML", "compressionType": "NO_COMPRESSION", "retentionDuration": { "units": "MINUTES", "amount": "180" }, "packingType": "NO_PACKING" } }, "performanceIndicatorGroup": [ { "name": "TRANSPORT01" }, { "name": "TRANSPORT02" } ], "performanceIndicatorSpecification": [ { "name": "ES" }, { "name": "SES" }, { "name": "UAS" }, { "name": "BBE" }, { "name": "FEBBE" }, { "name": "FEES" }, { "name": "FESES" }, { "name": "FEUAS" }, { "name": "UASBID" }, { "name": "LINK_AVAIL_PCT" } ] }, "sourceTime" : "11-26-2014 16:00:00 +0530", "ObjectType" : "AdhocCollection" }
|
measurementCollectionJobODelNNotification of the deletion of measurementCollectionJob. { "id": "collJob001", "creationTime": "11-26-2014 16:00:00 +0530", "lastModifiedTime": "11-26-2014 16:00:00 +0530", "adminState": "2", "jobPriority": "5", "executionState": "ExecutionState", "scheduleDefinition": { "type": "RecurringScheduleDefinition", "scheduleInfo": { "scheduleDefinitionStartTime": "11-26-2013 16:00:00 +0530", "scheduleDefinitionEndTime": "11-26-2014 16:00:00 +0530" } }, "consumingApplicationId": "CONSUMER001", "producingApplicationId": "NE001", "reportingPeriod": "R_15M", "granularity": "G_15M", "monitoredObjectsCriteria": { "type": "MonitoredClassCriteria", "monitoredObjectInfo": { "monitoredObjectClass": "SDH-Route" } }, "protocolTransferData": { "transportProtocol": "FILE_TRANSFER", "fileTransferData": { "fileLocation": "\\pm pmdata", "fileFormat": "XML", "compressionType": "NO_COMPRESSION", "retentionDuration": { "units": "MINUTES", "amount": "180" }, "packingType": "NO_PACKING" } }, "reportingPeriod": "R_15M", "outputFormat": "3GPP", "performanceIndicatorGroup": [ { "name": "TRANSPORT01" }, { "name": "TRANSPORT02" } ], "performanceIndicatorSpecification": [ { "name": "ES" }, { "name": "SES" }, { "name": "UAS" }, { "name": "BBE" }, { "name": "FEBBE" }, { "name": "FEES" }, { "name": "FESES" }, { "name": "FEUAS" }, { "name": "UASBID" }, { "name": "LINK_AVAIL_PCT" } ] }, "sourceTime" : "11-26-2014 16:00:00 +0530", "ObjectType" : "AdhocCollection" }
|
measurementProductionJobODelNNotification of the deletion of measurementProductionJob. { "id": "prodJob001", "creationTime": "11-26-2013 16:00:00 +0530", "lastModifiedTime": "11-26-2013 16:00:00 +0530", "adminState": "2", "jobPriority": "5", "executionState": "ExecutionState", "scheduleDefinition": { "type": "RecurringScheduleDefinition", "scheduleInfo": { "scheduleDefinitionStartTime": "11-26-2013 16:00:00 +0530", "scheduleDefinitionEndTime": "11-26-2014 16:00:00 +0530" } }, "consumingApplicationId": "CONSUMER001", "producingApplicationId": "NE001", "granularity": "G_15M", "monitoredObjectsCriteria": { "type": "MonitoredClassCriteria", "monitoredObjectInfo": { "monitoredObjectClass": "SDH-Route" } }, "protocolTransferData": { "transportProtocol": "FILE_TRANSFER", "fileTransferData": { "fileLocation": "\\pm pmdata", "fileFormat": "XML", "compressionType": "NO_COMPRESSION", "retentionDuration": { "units": "MINUTES", "amount": "180" }, "packingType": "NO_PACKING" } }, "performanceIndicatorGroup": [ { "name": "TRANSPORT01" }, { "name": "TRANSPORT02" } ], "performanceIndicatorSpecification": [ { "name": "ES" }, { "name": "SES" }, { "name": "UAS" }, { "name": "BBE" }, { "name": "FEBBE" }, { "name": "FEES" }, { "name": "FESES" }, { "name": "FEUAS" }, { "name": "UASBID" }, { "name": "LINK_AVAIL_PCT" } ] }, "sourceTime" : "11-26-2014 16:00:00 +0530", "ObjectType" : "AdhocCollection" } |
|