D.2 Performance data streaming for stopping measurement collection
28.5503GPPManagement and orchestrationPerformance assuranceRelease 18TS
D.2.1 Sequence flow
This annex shows the holistic sequence for performance data streaming in connection with the measurement collection termination.
Figure D.2.1-1
1. The consumer of MnS for measurement control requests the MnS producer to stop the measurement collection by the following two alternatives:
1) by the measurement job control service
1a. The MnS consumer invokes the stopMeasurementJob operation towards the MnS producer;
2) by the configurable measurement control service (a.k.a, NRM fragment-based measurement control service)
1b. The MnS consumer deletes the PerfMetricJob MOI , by invoking the deleteMOI operation towards the MnS producer;
1c. The MnS consumer modifies the PerfMetricJob MOI with deletion of the measurements that do not need to be collected anymore, by invoking the modifyMOIAttributes operation towards the MnS producer.
2. The producer of MnS for measurement control requests the NF to stop collecting the measurements. The mechanism of this step is vendor specific. If producer of MnS for measurement control is in the NF, this step can be skipped.
3. The NF stops collecting the measurements. This step is the internal behaviour of the NF.
4. The NF triggers the producer of MnS for performance data streaming to terminate streaming for the measurements. The mechanism of this step is vendor specific. If producer of MnS for performance data streaming is in the NF, this step can be skipped.
5. The producer of MnS for performance data streaming communicates with the consumer to:
5a. terminate the streaming (WebSocket) connection if no measurements need to be reported to the consumer anymore, by invoking the terminateStreamingConnection operation;
5b. delete the information for the stream(s) obsoleted due to the termination of the measruements collection if the streaming connection still needs to be retained, by invoking the deleteStreamInfo operation;
5c. update the information for the stream(s) partially affected by the termination of the measurements collection, by invoking the updateStreamInfo operation.
D.2.2 PlantUML codes
@startuml
skinparam shadowing false
skinparam monochrome true
hide footbox
participant "Consumer of MnS for\n measurement control" as MC
participant "Producer of MnS for\n measurement control" as MP
participant "NF" as NF
participant "Producer of MnS for\n performance data streaming" as SP
participant "Consumer of MnS for\n performance data streaming" as SC
alt Measurement job control service
MC -> MP : 1a. stopMeasurementJob\n(jobId)
else configurable measurement job control service (i.e., NRM fragment based MnS)
alt delete the MOI to terminate measurements collection
MC -> MP : 1b. deleteMOI\n(for PerfMetricJob MOI)
Else update existing MOI to terminate measurements collection
MC -> MP : 1c. modifyMOIAttributes\n(for PerfMetricJob MOI) end
end
MP –> NF: 2. terminate measurement\n collection (proprietory)
NF -> NF: 3. stop collecting the measurements
NF –> SP: 4. terminate streaming for the\n measurements (proprietory)
alt Streaming (WebSocket) connection is not needed anymore\n (e.g., no measurements need to be reported to the stream target)
SP->SC: 5a. terminateStreamingConnection()
else Streaming (WebSocket) connection is still needed
alt delete the obsolete stream(s)
loop For all of streams need to be deleted
SP->SC: 5b. deleteStreamInfo()
end
else update existing stream(s)
SP->SC: 5c. updateStreamInfo()
end
end
@enduml
Annex E (normative):
OpenAPI specification
E.1 Introduction
This clause describes the capabilities of the Management Services in the structure of the OpenAPI Specification Version 3.0.1. The OpenAPI document is represented in the YAML format option.
E.2 OpenAPI document " TS28550_PerMeasJobCtlMnS.yaml"
openapi: 3.0.1
info:
title: TS 28.550 Performance Measurement Job Control Service
version: 16.8.0
description: >-
OAS 3.0.1 specification of the Performance Measurement Job Control Service
@ 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
All rights reserved.
externalDocs:
description: 3GPP TS 28.550 V16.8.0; Performance assurance
url: http://www.3gpp.org/ftp/Specs/archive/28_series/28.550/
servers:
– url: ‘{MnSRoot}/PerfMeasJobCtrlMnS/{MnSVersion}’
variables:
MnSRoot:
description: See clause 4.4.2 of TS 32.158
default: http://example.com/3GPPManagement
MnSVersion:
description: Version number of the OpenAPI definition
default: XXX
paths:
/measJobs:
post:
summary: Create a measurement job
description: To create a measurement job the representation of the measurement job is POSTed on the /measJobs collection resource.
requestBody:
required: true
content:
application/json:
schema:
$ref: ‘#/components/schemas/measJobCreation-RequestType’
responses:
‘201’:
description: Success case ("201 Created"). The representation of the newly created measurement job resource shall be returned.
content:
application/json:
schema:
$ref: ‘#/components/schemas/measJobCreation-ResponseType’
‘202’:
description: Partial success case ("202 Partically created"). The representation of the newly created measurement job resource with unsupported list shall be returned.
content:
application/json:
schema:
$ref: ‘#/components/schemas/measJobCreation-ResponseType’
default:
description: Error case.
content:
application/json:
schema:
$ref: ‘#/components/schemas/error-ResponseType’
get:
summary: Read resources of measurement jobs
description: ‘With HTTP GET, resources of measurement jobs are read. The resources to be read are identified with the path component (base resource) and the query component (jobIdList) of the URI. The fields query component allows to select the resource properties to be returned.’
parameters:
– name: jobIdList
in: query
description: This parameter identifies the list of jobId to select the resources from the collection resources identified with the path component of the URI.
required: true
schema:
type: array
items:
type: string
responses:
‘200’:
description: ‘Success case ("200 OK"). The resources identified in the request for retrieval are returned in the response message body. In case the fields query parameter is used, the selected resources are returned.’
content:
application/json:
schema:
$ref: ‘#/components/schemas/measJobsRetrieval-ResponseType’
default:
description: Error case.
content:
application/json:
schema:
$ref: ‘#/components/schemas/error-ResponseType’
‘/measJobs/{jobId}’:
get:
summary: Read resource of a single measurement job
description: ‘With HTTP GET, resource of a measurement job is read. The resource to be read is identified with the path component of the URI.’
parameters:
– name: jobId
in: path
description: Identifies the measurement job to be read.
required: true
schema:
$ref: ‘#/components/schemas/uri-Type’
responses:
‘200’:
description: ‘Success case ("200 OK"). The resource identified in the path for retrieval is returned in the response message body. ‘
content:
application/json:
schema:
$ref: ‘#/components/schemas/measJobsRetrieval-ResponseType’
default:
description: Error case.
content:
application/json:
schema:
$ref: ‘#/components/schemas/error-ResponseType’
delete:
summary: Delete a single measurement job
description: The measurement job is deleted by deleting the corresponding measurement job resource. The resource to be deleted is identified with the path component of the URI.
parameters:
– name: jobId
in: path
description: Identifies the measurement job to be deleted.
required: true
schema:
$ref: ‘#/components/schemas/uri-Type’
responses:
‘204’:
description: Success case ("204 No Content"). The measurement job resource has been deleted. The response message body is absent.
default:
description: Error case.
content:
application/json:
schema:
$ref: ‘#/components/schemas/error-ResponseType’
components:
schemas:
dateTime-Type:
type: string
format: date-Time
uri-Type:
type: string
measJobCreation-RequestType:
type: object
properties:
iOCName:
type: string
iOCInstanceList:
type: array
items:
$ref: ‘#/components/schemas/uri-Type’
measurementCategoryList:
type: array
items:
type: string
reportingMethod:
$ref: ‘#/components/schemas/reportingMethod-Type’
granularityPeriod:
type: integer
reportingPeriod:
type: integer
startTime:
$ref: ‘#/components/schemas/dateTime-Type’
stopTime:
$ref: ‘#/components/schemas/dateTime-Type’
schedule:
$ref: ‘#/components/schemas/schedule-Type’
streamTarget:
type: string
priority:
$ref: ‘#/components/schemas/priority-Type’
reliability:
type: string
measJobCreation-ResponseType:
type: object
properties:
unsupportedList:
type: array
items:
$ref: ‘#/components/schemas/unsupportedMeas-Type’
measJobsRetrieval-ResponseType:
type: object
properties:
jobInfoList:
type: array
items:
$ref: ‘#/components/schemas/measJobInfo-ResourceType’
error-ResponseType:
type: object
properties:
error:
type: object
properties:
errorInfo:
type: string
measJobInfo-ResourceType:
type: object
properties:
href:
$ref: ‘#/components/schemas/uri-Type’
iOCName:
type: string
iOCInstanceList:
type: array
items:
$ref: ‘#/components/schemas/uri-Type’
measurementCategoryList:
type: array
items:
type: string
reportingMethod:
$ref: ‘#/components/schemas/reportingMethod-Type’
granularityPeriod:
type: integer
reportingPeriod:
type: integer
startTime:
$ref: ‘#/components/schemas/dateTime-Type’
stopTime:
$ref: ‘#/components/schemas/dateTime-Type’
schedule:
$ref: ‘#/components/schemas/schedule-Type’
streamTarget:
type: string
priority:
$ref: ‘#/components/schemas/priority-Type’
reliability:
type: string
schedule-Type:
type: object
properties:
scheduleOption:
$ref: ‘#/components/schemas/scheduleOption-Type’
dailySchedule:
type: array
items:
$ref: ‘#/components/schemas/timeInterval-Type’
weeklySchedule:
type: array
items:
$ref: ‘#/components/schemas/scheduleOfDay-Type’
timeInterval-Type:
type: object
properties:
intervalStart:
type: string
format: Time
intervalEnd:
type: string
format: Time
scheduleOfDay-Type:
type: object
properties:
dayOfWeek:
$ref: ‘#/components/schemas/dayOfWeek-Type’
intervalsOfDay:
type: array
items:
$ref: ‘#/components/schemas/timeInterval-Type’
unsupportedMeas-Type:
type: object
properties:
iOCInstance:
$ref: ‘#/components/schemas/uri-Type’
measurementTypeName:
type: string
reason:
type: string
reportingMethod-Type:
type: string
enum:
– file
– streaming
priority-Type:
type: string
enum:
– low
– medium
– high
scheduleOption-Type:
type: string
enum:
– daily
– weekly
dayOfWeek-Type:
type: string
enum:
– Monday
– Tuesday
– Wednesday
– Thursday
– Friday
– Saturday
– Sunday