From 7cfaea2ee5e73a5a0a669da3b8c949000245cb83 Mon Sep 17 00:00:00 2001 From: VENKATESH KUMAR Date: Wed, 22 Apr 2020 17:31:32 -0400 Subject: [PATCH] dcae r6 doc updates cont. Change-Id: I2303d59ad9491c555adb70de57eb14ab1fa7233c Signed-off-by: VENKATESH KUMAR Issue-ID: DCAEGEN2-1891 Signed-off-by: VENKATESH KUMAR --- docs/sections/apis/ves-hv/index.rst | 9 +- docs/sections/apis/ves.rst | 2801 +------------------- docs/sections/architecture.rst | 4 +- docs/sections/components/blueprint_generator.rst | 4 +- docs/sections/components/component-development.rst | 5 +- docs/sections/configuration.rst | 52 +- docs/sections/healthcheck.rst | 3 +- docs/sections/images/R6_architecture_diagram.png | Bin 50093 -> 95064 bytes docs/sections/installation_MS_ondemand.rst | 7 +- docs/sections/installation_oom.rst | 53 +- docs/sections/release-notes.rst | 28 +- docs/sections/sdk/architecture.rst | 2 +- docs/sections/sdk/index.rst | 2 +- docs/sections/services/dfc/installation.rst | 4 +- .../services/heartbeat-ms/installation.rst | 13 +- docs/sections/services/mapper/troubleshooting.rst | 1 - docs/sections/services/pm-mapper/installation.rst | 2 +- .../services/pm-mapper/troubleshooting.rst | 1 - .../pm-subscription-handler/troubleshooting.rst | 1 - docs/sections/services/restconf/installation.rst | 8 +- docs/sections/services/serviceindex.rst | 3 +- .../services/son-handler/son_handler_overview.rst | 4 +- .../services/tcagen2-docker/installation.rst | 11 +- .../services/ves-http/VES-processingFlow.png | Bin 154731 -> 44229 bytes docs/sections/services/ves-http/architecture.rst | 25 +- docs/sections/services/ves-http/configuration.rst | 15 +- docs/sections/services/ves-http/installation.rst | 185 +- docs/sections/services/ves-hv/troubleshooting.rst | 1 - 28 files changed, 235 insertions(+), 3009 deletions(-) diff --git a/docs/sections/apis/ves-hv/index.rst b/docs/sections/apis/ves-hv/index.rst index df91681c..c3ccfa0c 100644 --- a/docs/sections/apis/ves-hv/index.rst +++ b/docs/sections/apis/ves-hv/index.rst @@ -5,7 +5,6 @@ HV-VES (High Volume VES) ======================== -:Date: 2018-10-05 .. contents:: :depth: 4 @@ -25,9 +24,11 @@ TCP Endpoint ============ HV-VES is exposed as NodePort service on Kubernetes cluster on port 30222/tcp. -It uses plain, insecure TCP connection without socket data encryption. In Dublin release, -there is an experimental option to enable SSL/TLS (see :ref:`ssl_tls_authorization`). -Without TLS client authentication/authorization is not possible. +By default, as of the Frankfurt release, all TCP communications are secured using +SSL/TLS. Plain, insecure TCP connections without socket data encryption can be enabled if needed. + (see ref:`ssl_tls_authorization`). + +Without TLS, client authentication/authorization is not possible. Connections are stream-based (as opposed to request-based) and long-running. Communication is wrapped with thin Wire Transfer Protocol, which mainly provides delimitation. diff --git a/docs/sections/apis/ves.rst b/docs/sections/apis/ves.rst index f444c273..4ddd7b1d 100644 --- a/docs/sections/apis/ves.rst +++ b/docs/sections/apis/ves.rst @@ -1,7 +1,7 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. -VES Collector +VES-Collector ============= .. toctree:: @@ -28,2745 +28,106 @@ onap-discuss@lists.onap.org Security ~~~~~~~~ -.. _securities_basicAuth: - -basicAuth (HTTP Basic Authentication) -------------------------------------- - -*HTTP Basic Authentication. Works over `HTTP` and `HTTPS`* - -DEFAULT -~~~~~~~ - -GET ``/healthcheck`` --------------------- - -Request -+++++++ - -Responses -+++++++++ - -**200** -^^^^^^^ - -healthcheck successful - -POST ``/eventListener/v5`` --------------------------- - -Description -+++++++++++ - -.. raw:: html - - uri for posting VES event objects - -Request -+++++++ - -.. _d_f598222d7a83ca9c3538556b263682d1: +`VES Authentication Types `_ + + +VES Specification +~~~~~~~~~~~~~~~~~ + +- `VES 7.1.1 Data Model `_ +- `VES 5.4 Data Model `_ + + +Response Code +~~~~~~~~~~~~~ + ++-----+--------------+--------------------------------------------------------+ +| Code| Reason Phrase| Description | ++=====+==============+========================================================+ +| 202 | Accepted | The request has been accepted for processing | ++-----+--------------+--------------------------------------------------------+ +| 400 | Bad Request | Many possible reasons not specified by the other codes | +| | | (e.g., missing required parameters or incorrect format)| +| | | . The response body may include a further exception | +| | | code and text. HTTP 400 errors may be mapped to SVC0001| +| | | (general service error), SVC0002 (bad parameter), | +| | | SVC2000 (general service error with details) or PO9003 | +| | | (message content size exceeds the allowable limit). | ++-----+--------------+--------------------------------------------------------+ +| 401 | Unauthorized | Authentication failed or was not provided. HTTP 401 | +| | | errors may be mapped to POL0001 (general policy error) | +| | | or POL2000 (general policy error with details). | ++-----+--------------+--------------------------------------------------------+ +| 404 | Not Found | The server has not found anything matching the | +| | | Request-URI. No indication is given of whether the | +| | | condition is temporary or permanent. | ++-----+--------------+--------------------------------------------------------+ +| 405 | Method Not | A request was made of a resource using a request method| +| | Allowed | not supported by that resource (e.g., using PUT on a | +| | | REST resource that only supports POST). | ++-----+--------------+--------------------------------------------------------+ +| 500 | Internal | The server encountered an internal error or timed out; | +| | Server Error | please retry (general catch-all server-side error).HTTP| +| | | 500 errors may be mapped to SVC1000 (no server | +| | | resources). | ++-----+--------------+--------------------------------------------------------+ + +Sample Request and Response +--------------------------- -Body -^^^^ +Request Example -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 - event | No | :ref:`event ` | | | +.. code-block:: http -.. code-block:: javascript + POST /eventListener/v7 HTTP/1.1 + Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== + content-type: application/json + content-length: 12345 + X-MinorVersion: 1 { "event": { "commonEventHeader": { + "version": "4.1", + "vesEventListenerVersion": "7.1.1", "domain": "fault", - "eventId": "somestring", - "eventName": "somestring", - "eventType": "somestring", - "internalHeaderFields": {}, - "lastEpochMicrosec": 1, - "nfNamingCode": "somestring", - "nfcNamingCode": "somestring", - "priority": "High", - "reportingEntityId": "somestring", - "reportingEntityName": "somestring", + "eventName": "Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion", + "eventId": "fault0000245", "sequence": 1, - "sourceId": "somestring", - "sourceName": "somestring", - "startEpochMicrosec": 1, - "version": 1 - }, - "faultFields": { - "alarmAdditionalInformation": [ - { - "name": "somestring", - "value": "somestring" - }, - { - "name": "somestring", - "value": "somestring" - } - ], - "alarmCondition": "somestring", - "alarmInterfaceA": "somestring", - "eventCategory": "somestring", - "eventSeverity": "CRITICAL", - "eventSourceType": "somestring", - "faultFieldsVersion": 1, - "specificProblem": "somestring", - "vfStatus": "Active" - }, - "heartbeatFields": { - "additionalFields": [ - { - "name": "somestring", - "value": "somestring" - }, - { - "name": "somestring", - "value": "somestring" - } - ], - "heartbeatFieldsVersion": 1, - "heartbeatInterval": 1 - }, - "measurementsForVfScalingFields": { - "additionalFields": [ - { - "name": "somestring", - "value": "somestring" - }, - { - "name": "somestring", - "value": "somestring" - } - ], - "additionalMeasurements": [ - { - "arrayOfFields": [ - { - "name": "somestring", - "value": "somestring" - }, - { - "name": "somestring", - "value": "somestring" - } - ], - "name": "somestring" - }, - { - "arrayOfFields": [ - { - "name": "somestring", - "value": "somestring" - }, - { - "name": "somestring", - "value": "somestring" - } - ], - "name": "somestring" - } - ], - "additionalObjects": [ - { - "nfSubscribedObjectName": "somestring", - "nfSubscriptionId": "somestring", - "objectInstances": [ - { - "objectInstance": {}, - "objectInstanceEpochMicrosec": 1, - "objectKeys": [ - { - "keyName": "somestring", - "keyOrder": 1, - "keyValue": "somestring" - }, - { - "keyName": "somestring", - "keyOrder": 1, - "keyValue": "somestring" - } - ] - }, - { - "objectInstance": {}, - "objectInstanceEpochMicrosec": 1, - "objectKeys": [ - { - "keyName": "somestring", - "keyOrder": 1, - "keyValue": "somestring" - }, - { - "keyName": "somestring", - "keyOrder": 1, - "keyValue": "somestring" - } - ] - } - ], - "objectName": "somestring", - "objectSchema": "somestring", - "objectSchemaUrl": "somestring" - }, - { - "nfSubscribedObjectName": "somestring", - "nfSubscriptionId": "somestring", - "objectInstances": [ - { - "objectInstance": {}, - "objectInstanceEpochMicrosec": 1, - "objectKeys": [ - { - "keyName": "somestring", - "keyOrder": 1, - "keyValue": "somestring" - }, - { - "keyName": "somestring", - "keyOrder": 1, - "keyValue": "somestring" - } - ] - }, - { - "objectInstance": {}, - "objectInstanceEpochMicrosec": 1, - "objectKeys": [ - { - "keyName": "somestring", - "keyOrder": 1, - "keyValue": "somestring" - }, - { - "keyName": "somestring", - "keyOrder": 1, - "keyValue": "somestring" - } - ] - } - ], - "objectName": "somestring", - "objectSchema": "somestring", - "objectSchemaUrl": "somestring" - } - ], - "codecUsageArray": [ - { - "codecIdentifier": "somestring", - "numberInUse": 1 - }, - { - "codecIdentifier": "somestring", - "numberInUse": 1 - } - ], - "concurrentSessions": 1, - "configuredEntities": 1, - "cpuUsageArray": [ - { - "cpuIdentifier": "somestring", - "cpuIdle": 1, - "cpuUsageInterrupt": 1, - "cpuUsageNice": 1, - "cpuUsageSoftIrq": 1, - "cpuUsageSteal": 1, - "cpuUsageSystem": 1, - "cpuUsageUser": 1, - "cpuWait": 1, - "percentUsage": 1 - }, - { - "cpuIdentifier": "somestring", - "cpuIdle": 1, - "cpuUsageInterrupt": 1, - "cpuUsageNice": 1, - "cpuUsageSoftIrq": 1, - "cpuUsageSteal": 1, - "cpuUsageSystem": 1, - "cpuUsageUser": 1, - "cpuWait": 1, - "percentUsage": 1 - } - ], - "diskUsageArray": [ - { - "diskIdentifier": "somestring", - "diskIoTimeAvg": 1, - "diskIoTimeLast": 1, - "diskIoTimeMax": 1, - "diskIoTimeMin": 1, - "diskMergedReadAvg": 1, - "diskMergedReadLast": 1, - "diskMergedReadMax": 1, - "diskMergedReadMin": 1, - "diskMergedWriteAvg": 1, - "diskMergedWriteLast": 1, - "diskMergedWriteMax": 1, - "diskMergedWriteMin": 1, - "diskOctetsReadAvg": 1, - "diskOctetsReadLast": 1, - "diskOctetsReadMax": 1, - "diskOctetsReadMin": 1, - "diskOctetsWriteAvg": 1, - "diskOctetsWriteLast": 1, - "diskOctetsWriteMax": 1, - "diskOctetsWriteMin": 1, - "diskOpsReadAvg": 1, - "diskOpsReadLast": 1, - "diskOpsReadMax": 1, - "diskOpsReadMin": 1, - "diskOpsWriteAvg": 1, - "diskOpsWriteLast": 1, - "diskOpsWriteMax": 1, - "diskOpsWriteMin": 1, - "diskPendingOperationsAvg": 1, - "diskPendingOperationsLast": 1, - "diskPendingOperationsMax": 1, - "diskPendingOperationsMin": 1, - "diskTimeReadAvg": 1, - "diskTimeReadLast": 1, - "diskTimeReadMax": 1, - "diskTimeReadMin": 1, - "diskTimeWriteAvg": 1, - "diskTimeWriteLast": 1, - "diskTimeWriteMax": 1, - "diskTimeWriteMin": 1 - }, - { - "diskIdentifier": "somestring", - "diskIoTimeAvg": 1, - "diskIoTimeLast": 1, - "diskIoTimeMax": 1, - "diskIoTimeMin": 1, - "diskMergedReadAvg": 1, - "diskMergedReadLast": 1, - "diskMergedReadMax": 1, - "diskMergedReadMin": 1, - "diskMergedWriteAvg": 1, - "diskMergedWriteLast": 1, - "diskMergedWriteMax": 1, - "diskMergedWriteMin": 1, - "diskOctetsReadAvg": 1, - "diskOctetsReadLast": 1, - "diskOctetsReadMax": 1, - "diskOctetsReadMin": 1, - "diskOctetsWriteAvg": 1, - "diskOctetsWriteLast": 1, - "diskOctetsWriteMax": 1, - "diskOctetsWriteMin": 1, - "diskOpsReadAvg": 1, - "diskOpsReadLast": 1, - "diskOpsReadMax": 1, - "diskOpsReadMin": 1, - "diskOpsWriteAvg": 1, - "diskOpsWriteLast": 1, - "diskOpsWriteMax": 1, - "diskOpsWriteMin": 1, - "diskPendingOperationsAvg": 1, - "diskPendingOperationsLast": 1, - "diskPendingOperationsMax": 1, - "diskPendingOperationsMin": 1, - "diskTimeReadAvg": 1, - "diskTimeReadLast": 1, - "diskTimeReadMax": 1, - "diskTimeReadMin": 1, - "diskTimeWriteAvg": 1, - "diskTimeWriteLast": 1, - "diskTimeWriteMax": 1, - "diskTimeWriteMin": 1 - } - ], - "featureUsageArray": [ - { - "featureIdentifier": "somestring", - "featureUtilization": 1 - }, - { - "featureIdentifier": "somestring", - "featureUtilization": 1 - } - ], - "filesystemUsageArray": [ - { - "blockConfigured": 1, - "blockIops": 1, - "blockUsed": 1, - "ephemeralConfigured": 1, - "ephemeralIops": 1, - "ephemeralUsed": 1, - "filesystemName": "somestring" - }, - { - "blockConfigured": 1, - "blockIops": 1, - "blockUsed": 1, - "ephemeralConfigured": 1, - "ephemeralIops": 1, - "ephemeralUsed": 1, - "filesystemName": "somestring" - } - ], - "latencyDistribution": [ - { - "countsInTheBucket": 1, - "highEndOfLatencyBucket": 1, - "lowEndOfLatencyBucket": 1 - }, - { - "countsInTheBucket": 1, - "highEndOfLatencyBucket": 1, - "lowEndOfLatencyBucket": 1 - } - ], - "meanRequestLatency": 1, - "measurementInterval": 1, - "measurementsForVfScalingVersion": 1, - "memoryUsageArray": [ - { - "memoryBuffered": 1, - "memoryCached": 1, - "memoryConfigured": 1, - "memoryFree": 1, - "memorySlabRecl": 1, - "memorySlabUnrecl": 1, - "memoryUsed": 1, - "vmIdentifier": "somestring" - }, - { - "memoryBuffered": 1, - "memoryCached": 1, - "memoryConfigured": 1, - "memoryFree": 1, - "memorySlabRecl": 1, - "memorySlabUnrecl": 1, - "memoryUsed": 1, - "vmIdentifier": "somestring" - } - ], - "numberOfMediaPortsInUse": 1, - "requestRate": 1, - "vNicPerformanceArray": [ - { - "receivedBroadcastPacketsAccumulated": 1, - "receivedBroadcastPacketsDelta": 1, - "receivedDiscardedPacketsAccumulated": 1, - "receivedDiscardedPacketsDelta": 1, - "receivedErrorPacketsAccumulated": 1, - "receivedErrorPacketsDelta": 1, - "receivedMulticastPacketsAccumulated": 1, - "receivedMulticastPacketsDelta": 1, - "receivedOctetsAccumulated": 1, - "receivedOctetsDelta": 1, - "receivedTotalPacketsAccumulated": 1, - "receivedTotalPacketsDelta": 1, - "receivedUnicastPacketsAccumulated": 1, - "receivedUnicastPacketsDelta": 1, - "transmittedBroadcastPacketsAccumulated": 1, - "transmittedBroadcastPacketsDelta": 1, - "transmittedDiscardedPacketsAccumulated": 1, - "transmittedDiscardedPacketsDelta": 1, - "transmittedErrorPacketsAccumulated": 1, - "transmittedErrorPacketsDelta": 1, - "transmittedMulticastPacketsAccumulated": 1, - "transmittedMulticastPacketsDelta": 1, - "transmittedOctetsAccumulated": 1, - "transmittedOctetsDelta": 1, - "transmittedTotalPacketsAccumulated": 1, - "transmittedTotalPacketsDelta": 1, - "transmittedUnicastPacketsAccumulated": 1, - "transmittedUnicastPacketsDelta": 1, - "vNicIdentifier": "somestring", - "valuesAreSuspect": "true" - }, - { - "receivedBroadcastPacketsAccumulated": 1, - "receivedBroadcastPacketsDelta": 1, - "receivedDiscardedPacketsAccumulated": 1, - "receivedDiscardedPacketsDelta": 1, - "receivedErrorPacketsAccumulated": 1, - "receivedErrorPacketsDelta": 1, - "receivedMulticastPacketsAccumulated": 1, - "receivedMulticastPacketsDelta": 1, - "receivedOctetsAccumulated": 1, - "receivedOctetsDelta": 1, - "receivedTotalPacketsAccumulated": 1, - "receivedTotalPacketsDelta": 1, - "receivedUnicastPacketsAccumulated": 1, - "receivedUnicastPacketsDelta": 1, - "transmittedBroadcastPacketsAccumulated": 1, - "transmittedBroadcastPacketsDelta": 1, - "transmittedDiscardedPacketsAccumulated": 1, - "transmittedDiscardedPacketsDelta": 1, - "transmittedErrorPacketsAccumulated": 1, - "transmittedErrorPacketsDelta": 1, - "transmittedMulticastPacketsAccumulated": 1, - "transmittedMulticastPacketsDelta": 1, - "transmittedOctetsAccumulated": 1, - "transmittedOctetsDelta": 1, - "transmittedTotalPacketsAccumulated": 1, - "transmittedTotalPacketsDelta": 1, - "transmittedUnicastPacketsAccumulated": 1, - "transmittedUnicastPacketsDelta": 1, - "vNicIdentifier": "somestring", - "valuesAreSuspect": "true" - } - ], - "vnfcScalingMetric": 1 - }, - "mobileFlowFields": { - "additionalFields": [ - { - "name": "somestring", - "value": "somestring" - }, - { - "name": "somestring", - "value": "somestring" - } - ], - "appProtocolType": "somestring", - "appProtocolVersion": "somestring", - "applicationType": "somestring", - "cid": "somestring", - "connectionType": "somestring", - "ecgi": "somestring", - "flowDirection": "somestring", - "gtpPerFlowMetrics": { - "avgBitErrorRate": 1, - "avgPacketDelayVariation": 1, - "avgPacketLatency": 1, - "avgReceiveThroughput": 1, - "avgTransmitThroughput": 1, - "durConnectionFailedStatus": 1, - "durTunnelFailedStatus": 1, - "flowActivatedBy": "somestring", - "flowActivationEpoch": 1, - "flowActivationMicrosec": 1, - "flowActivationTime": "somestring", - "flowDeactivatedBy": "somestring", - "flowDeactivationEpoch": 1, - "flowDeactivationMicrosec": 1, - "flowDeactivationTime": "somestring", - "flowStatus": "somestring", - "gtpConnectionStatus": "somestring", - "gtpTunnelStatus": "somestring", - "ipTosCountList": [ - [ - 1, - 1 - ], - [ - 1, - 1 - ] - ], - "ipTosList": [ - "somestring", - "somestring" - ], - "largePacketRtt": 1, - "largePacketThreshold": 1, - "maxPacketDelayVariation": 1, - "maxReceiveBitRate": 1, - "maxTransmitBitRate": 1, - "mobileQciCosCountList": [ - [ - 1, - 1 - ], - [ - 1, - 1 - ] - ], - "mobileQciCosList": [ - "somestring", - "somestring" - ], - "numActivationFailures": 1, - "numBitErrors": 1, - "numBytesReceived": 1, - "numBytesTransmitted": 1, - "numDroppedPackets": 1, - "numGtpEchoFailures": 1, - "numGtpTunnelErrors": 1, - "numHttpErrors": 1, - "numL7BytesReceived": 1, - "numL7BytesTransmitted": 1, - "numLostPackets": 1, - "numOutOfOrderPackets": 1, - "numPacketErrors": 1, - "numPacketsReceivedExclRetrans": 1, - "numPacketsReceivedInclRetrans": 1, - "numPacketsTransmittedInclRetrans": 1, - "numRetries": 1, - "numTimeouts": 1, - "numTunneledL7BytesReceived": 1, - "roundTripTime": 1, - "tcpFlagCountList": [ - [ - 1, - 1 - ], - [ - 1, - 1 - ] - ], - "tcpFlagList": [ - "somestring", - "somestring" - ], - "timeToFirstByte": 1 - }, - "gtpProtocolType": "somestring", - "gtpVersion": "somestring", - "httpHeader": "somestring", - "imei": "somestring", - "imsi": "somestring", - "ipProtocolType": "somestring", - "ipVersion": "somestring", - "lac": "somestring", - "mcc": "somestring", - "mnc": "somestring", - "mobileFlowFieldsVersion": 1, - "msisdn": "somestring", - "otherEndpointIpAddress": "somestring", - "otherEndpointPort": 1, - "otherFunctionalRole": "somestring", - "rac": "somestring", - "radioAccessTechnology": "somestring", - "reportingEndpointIpAddr": "somestring", - "reportingEndpointPort": 1, - "sac": "somestring", - "samplingAlgorithm": 1, - "tac": "somestring", - "tunnelId": "somestring", - "vlanId": "somestring" - }, - "otherFields": { - "hashOfNameValuePairArrays": [ - { - "arrayOfFields": [ - { - "name": "somestring", - "value": "somestring" - }, - { - "name": "somestring", - "value": "somestring" - } - ], - "name": "somestring" - }, - { - "arrayOfFields": [ - { - "name": "somestring", - "value": "somestring" - }, - { - "name": "somestring", - "value": "somestring" - } - ], - "name": "somestring" - } - ], - "jsonObjects": [ - { - "nfSubscribedObjectName": "somestring", - "nfSubscriptionId": "somestring", - "objectInstances": [ - { - "objectInstance": {}, - "objectInstanceEpochMicrosec": 1, - "objectKeys": [ - { - "keyName": "somestring", - "keyOrder": 1, - "keyValue": "somestring" - }, - { - "keyName": "somestring", - "keyOrder": 1, - "keyValue": "somestring" - } - ] - }, - { - "objectInstance": {}, - "objectInstanceEpochMicrosec": 1, - "objectKeys": [ - { - "keyName": "somestring", - "keyOrder": 1, - "keyValue": "somestring" - }, - { - "keyName": "somestring", - "keyOrder": 1, - "keyValue": "somestring" - } - ] - } - ], - "objectName": "somestring", - "objectSchema": "somestring", - "objectSchemaUrl": "somestring" - }, - { - "nfSubscribedObjectName": "somestring", - "nfSubscriptionId": "somestring", - "objectInstances": [ - { - "objectInstance": {}, - "objectInstanceEpochMicrosec": 1, - "objectKeys": [ - { - "keyName": "somestring", - "keyOrder": 1, - "keyValue": "somestring" - }, - { - "keyName": "somestring", - "keyOrder": 1, - "keyValue": "somestring" - } - ] - }, - { - "objectInstance": {}, - "objectInstanceEpochMicrosec": 1, - "objectKeys": [ - { - "keyName": "somestring", - "keyOrder": 1, - "keyValue": "somestring" - }, - { - "keyName": "somestring", - "keyOrder": 1, - "keyValue": "somestring" - } - ] - } - ], - "objectName": "somestring", - "objectSchema": "somestring", - "objectSchemaUrl": "somestring" - } - ], - "nameValuePairs": [ - { - "name": "somestring", - "value": "somestring" - }, - { - "name": "somestring", - "value": "somestring" - } - ], - "otherFieldsVersion": 1 - }, - "sipSignalingFields": { - "additionalInformation": [ - { - "name": "somestring", - "value": "somestring" - }, - { - "name": "somestring", - "value": "somestring" - } - ], - "compressedSip": "somestring", - "correlator": "somestring", - "localIpAddress": "somestring", - "localPort": "somestring", - "remoteIpAddress": "somestring", - "remotePort": "somestring", - "sipSignalingFieldsVersion": 1, - "summarySip": "somestring", - "vendorVnfNameFields": { - "vendorName": "somestring", - "vfModuleName": "somestring", - "vnfName": "somestring" - } - }, - "stateChangeFields": { - "additionalFields": [ - { - "name": "somestring", - "value": "somestring" - }, - { - "name": "somestring", - "value": "somestring" - } - ], - "newState": "inService", - "oldState": "inService", - "stateChangeFieldsVersion": 1, - "stateInterface": "somestring" - }, - "syslogFields": { - "additionalFields": "somestring", - "eventSourceHost": "somestring", - "eventSourceType": "somestring", - "syslogFacility": 1, - "syslogFieldsVersion": 1, - "syslogMsg": "somestring", - "syslogPri": 1, - "syslogProc": "somestring", - "syslogProcId": 1, - "syslogSData": "somestring", - "syslogSdId": "somestring", - "syslogSev": "Alert", - "syslogTag": "somestring", - "syslogVer": 1 - }, - "thresholdCrossingAlertFields": { - "additionalFields": [ - { - "name": "somestring", - "value": "somestring" - }, - { - "name": "somestring", - "value": "somestring" - } - ], - "additionalParameters": [ - { - "criticality": "CRIT", - "name": "somestring", - "thresholdCrossed": "somestring", - "value": "somestring" - }, - { - "criticality": "CRIT", - "name": "somestring", - "thresholdCrossed": "somestring", - "value": "somestring" - } - ], - "alertAction": "CLEAR", - "alertDescription": "somestring", - "alertType": "CARD-ANOMALY", - "alertValue": "somestring", - "associatedAlertIdList": [ - "somestring", - "somestring" - ], - "collectionTimestamp": "somestring", - "dataCollector": "somestring", - "elementType": "somestring", - "eventSeverity": "CRITICAL", - "eventStartTimestamp": "somestring", - "interfaceName": "somestring", - "networkService": "somestring", - "possibleRootCause": "somestring", - "thresholdCrossingFieldsVersion": 1 - }, - "voiceQualityFields": { - "additionalInformation": [ - { - "name": "somestring", - "value": "somestring" - }, - { - "name": "somestring", - "value": "somestring" - } - ], - "calleeSideCodec": "somestring", - "callerSideCodec": "somestring", - "correlator": "somestring", - "endOfCallVqmSummaries": { - "adjacencyName": "somestring", - "endpointDescription": "Caller", - "endpointJitter": 1, - "endpointRtpOctetsDiscarded": 1, - "endpointRtpOctetsReceived": 1, - "endpointRtpOctetsSent": 1, - "endpointRtpPacketsDiscarded": 1, - "endpointRtpPacketsReceived": 1, - "endpointRtpPacketsSent": 1, - "localJitter": 1, - "localRtpOctetsDiscarded": 1, - "localRtpOctetsReceived": 1, - "localRtpOctetsSent": 1, - "localRtpPacketsDiscarded": 1, - "localRtpPacketsReceived": 1, - "localRtpPacketsSent": 1, - "mosCqe": 1, - "packetLossPercent": 1, - "packetsLost": 1, - "rFactor": 1, - "roundTripDelay": 1 - }, - "midCallRtcp": "somestring", - "phoneNumber": "somestring", - "vendorVnfNameFields": { - "vendorName": "somestring", - "vfModuleName": "somestring", - "vnfName": "somestring" - }, - "voiceQualityFieldsVersion": 1 - } - } - } - -Responses -+++++++++ - -**200** -^^^^^^^ - -VES Event Accepted. - -Type: :ref:`ApiResponseMessage ` - -**Example:** - -.. code-block:: javascript - - { - "code": 1, - "message": "somestring", - "type": "somestring" - } - -**400** -^^^^^^^ - -Bad request provided - -Type: :ref:`ApiResponseMessage ` - -**Example:** - -.. code-block:: javascript - - { - "code": 1, - "message": "somestring", - "type": "somestring" - } - -**401** -^^^^^^^ - -Unauthorized request - -Type: :ref:`ApiResponseMessage ` - -**Example:** - -.. code-block:: javascript - - { - "code": 1, - "message": "somestring", - "type": "somestring" - } - -**503** -^^^^^^^ - -Service Unavailable - -Type: :ref:`ApiResponseMessage ` - -**Example:** - -.. code-block:: javascript - - { - "code": 1, - "message": "somestring", - "type": "somestring" - } - -Security -++++++++ - -.. csv-table:: - :header: "Security Schema", "Scopes" - :widths: 15, 45 - - :ref:`basicAuth `, "" - -POST ``/eventListener/v5/eventBatch`` -------------------------------------- - -Description -+++++++++++ - -.. raw:: html - - uri for posting VES batch event objects - -Request -+++++++ - -Body -^^^^ - -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 - - event | No | :ref:`event ` | | | - -.. code-block:: javascript - - { - "event": { - "commonEventHeader": { - "domain": "fault", - "eventId": "somestring", - "eventName": "somestring", - "eventType": "somestring", - "internalHeaderFields": {}, - "lastEpochMicrosec": 1, - "nfNamingCode": "somestring", - "nfcNamingCode": "somestring", "priority": "High", - "reportingEntityId": "somestring", - "reportingEntityName": "somestring", - "sequence": 1, - "sourceId": "somestring", - "sourceName": "somestring", - "startEpochMicrosec": 1, - "version": 1 + "reportingEntityId": "cc305d54-75b4-431b-adb2-eb6b9e541234", + "reportingEntityName": "ibcx0001vm002oam001", + "sourceId": "de305d54-75b4-431b-adb2-eb6b9e546014", + "sourceName": "scfx0001vm002cap001", + "nfVendorName": "Ericsson", + "nfNamingCode": "scfx", + "nfcNamingCode": "ssc", + "startEpochMicrosec": 1413378172000000, + "lastEpochMicrosec": 1413378172000000, + "timeZoneOffset": "UTC-05:30" }, "faultFields": { - "alarmAdditionalInformation": [ - { - "name": "somestring", - "value": "somestring" - }, - { - "name": "somestring", - "value": "somestring" - } - ], - "alarmCondition": "somestring", - "alarmInterfaceA": "somestring", - "eventCategory": "somestring", + "faultFieldsVersion": 4.0, + "alarmCondition": "PilotNumberPoolExhaustion", + "eventSourceType": "other", + "specificProblem": "Calls cannot complete - pilot numbers are unavailable", "eventSeverity": "CRITICAL", - "eventSourceType": "somestring", - "faultFieldsVersion": 1, - "specificProblem": "somestring", - "vfStatus": "Active" - }, - "heartbeatFields": { - "additionalFields": [ - { - "name": "somestring", - "value": "somestring" - }, - { - "name": "somestring", - "value": "somestring" - } - ], - "heartbeatFieldsVersion": 1, - "heartbeatInterval": 1 - }, - "measurementsForVfScalingFields": { - "additionalFields": [ - { - "name": "somestring", - "value": "somestring" - }, - { - "name": "somestring", - "value": "somestring" - } - ], - "additionalMeasurements": [ - { - "arrayOfFields": [ - { - "name": "somestring", - "value": "somestring" - }, - { - "name": "somestring", - "value": "somestring" - } - ], - "name": "somestring" - }, - { - "arrayOfFields": [ - { - "name": "somestring", - "value": "somestring" - }, - { - "name": "somestring", - "value": "somestring" - } - ], - "name": "somestring" - } - ], - "additionalObjects": [ - { - "nfSubscribedObjectName": "somestring", - "nfSubscriptionId": "somestring", - "objectInstances": [ - { - "objectInstance": {}, - "objectInstanceEpochMicrosec": 1, - "objectKeys": [ - { - "keyName": "somestring", - "keyOrder": 1, - "keyValue": "somestring" - }, - { - "keyName": "somestring", - "keyOrder": 1, - "keyValue": "somestring" - } - ] - }, - { - "objectInstance": {}, - "objectInstanceEpochMicrosec": 1, - "objectKeys": [ - { - "keyName": "somestring", - "keyOrder": 1, - "keyValue": "somestring" - }, - { - "keyName": "somestring", - "keyOrder": 1, - "keyValue": "somestring" - } - ] - } - ], - "objectName": "somestring", - "objectSchema": "somestring", - "objectSchemaUrl": "somestring" - }, - { - "nfSubscribedObjectName": "somestring", - "nfSubscriptionId": "somestring", - "objectInstances": [ - { - "objectInstance": {}, - "objectInstanceEpochMicrosec": 1, - "objectKeys": [ - { - "keyName": "somestring", - "keyOrder": 1, - "keyValue": "somestring" - }, - { - "keyName": "somestring", - "keyOrder": 1, - "keyValue": "somestring" - } - ] - }, - { - "objectInstance": {}, - "objectInstanceEpochMicrosec": 1, - "objectKeys": [ - { - "keyName": "somestring", - "keyOrder": 1, - "keyValue": "somestring" - }, - { - "keyName": "somestring", - "keyOrder": 1, - "keyValue": "somestring" - } - ] - } - ], - "objectName": "somestring", - "objectSchema": "somestring", - "objectSchemaUrl": "somestring" - } - ], - "codecUsageArray": [ - { - "codecIdentifier": "somestring", - "numberInUse": 1 - }, - { - "codecIdentifier": "somestring", - "numberInUse": 1 - } - ], - "concurrentSessions": 1, - "configuredEntities": 1, - "cpuUsageArray": [ - { - "cpuIdentifier": "somestring", - "cpuIdle": 1, - "cpuUsageInterrupt": 1, - "cpuUsageNice": 1, - "cpuUsageSoftIrq": 1, - "cpuUsageSteal": 1, - "cpuUsageSystem": 1, - "cpuUsageUser": 1, - "cpuWait": 1, - "percentUsage": 1 - }, - { - "cpuIdentifier": "somestring", - "cpuIdle": 1, - "cpuUsageInterrupt": 1, - "cpuUsageNice": 1, - "cpuUsageSoftIrq": 1, - "cpuUsageSteal": 1, - "cpuUsageSystem": 1, - "cpuUsageUser": 1, - "cpuWait": 1, - "percentUsage": 1 - } - ], - "diskUsageArray": [ - { - "diskIdentifier": "somestring", - "diskIoTimeAvg": 1, - "diskIoTimeLast": 1, - "diskIoTimeMax": 1, - "diskIoTimeMin": 1, - "diskMergedReadAvg": 1, - "diskMergedReadLast": 1, - "diskMergedReadMax": 1, - "diskMergedReadMin": 1, - "diskMergedWriteAvg": 1, - "diskMergedWriteLast": 1, - "diskMergedWriteMax": 1, - "diskMergedWriteMin": 1, - "diskOctetsReadAvg": 1, - "diskOctetsReadLast": 1, - "diskOctetsReadMax": 1, - "diskOctetsReadMin": 1, - "diskOctetsWriteAvg": 1, - "diskOctetsWriteLast": 1, - "diskOctetsWriteMax": 1, - "diskOctetsWriteMin": 1, - "diskOpsReadAvg": 1, - "diskOpsReadLast": 1, - "diskOpsReadMax": 1, - "diskOpsReadMin": 1, - "diskOpsWriteAvg": 1, - "diskOpsWriteLast": 1, - "diskOpsWriteMax": 1, - "diskOpsWriteMin": 1, - "diskPendingOperationsAvg": 1, - "diskPendingOperationsLast": 1, - "diskPendingOperationsMax": 1, - "diskPendingOperationsMin": 1, - "diskTimeReadAvg": 1, - "diskTimeReadLast": 1, - "diskTimeReadMax": 1, - "diskTimeReadMin": 1, - "diskTimeWriteAvg": 1, - "diskTimeWriteLast": 1, - "diskTimeWriteMax": 1, - "diskTimeWriteMin": 1 - }, - { - "diskIdentifier": "somestring", - "diskIoTimeAvg": 1, - "diskIoTimeLast": 1, - "diskIoTimeMax": 1, - "diskIoTimeMin": 1, - "diskMergedReadAvg": 1, - "diskMergedReadLast": 1, - "diskMergedReadMax": 1, - "diskMergedReadMin": 1, - "diskMergedWriteAvg": 1, - "diskMergedWriteLast": 1, - "diskMergedWriteMax": 1, - "diskMergedWriteMin": 1, - "diskOctetsReadAvg": 1, - "diskOctetsReadLast": 1, - "diskOctetsReadMax": 1, - "diskOctetsReadMin": 1, - "diskOctetsWriteAvg": 1, - "diskOctetsWriteLast": 1, - "diskOctetsWriteMax": 1, - "diskOctetsWriteMin": 1, - "diskOpsReadAvg": 1, - "diskOpsReadLast": 1, - "diskOpsReadMax": 1, - "diskOpsReadMin": 1, - "diskOpsWriteAvg": 1, - "diskOpsWriteLast": 1, - "diskOpsWriteMax": 1, - "diskOpsWriteMin": 1, - "diskPendingOperationsAvg": 1, - "diskPendingOperationsLast": 1, - "diskPendingOperationsMax": 1, - "diskPendingOperationsMin": 1, - "diskTimeReadAvg": 1, - "diskTimeReadLast": 1, - "diskTimeReadMax": 1, - "diskTimeReadMin": 1, - "diskTimeWriteAvg": 1, - "diskTimeWriteLast": 1, - "diskTimeWriteMax": 1, - "diskTimeWriteMin": 1 - } - ], - "featureUsageArray": [ - { - "featureIdentifier": "somestring", - "featureUtilization": 1 - }, - { - "featureIdentifier": "somestring", - "featureUtilization": 1 - } - ], - "filesystemUsageArray": [ - { - "blockConfigured": 1, - "blockIops": 1, - "blockUsed": 1, - "ephemeralConfigured": 1, - "ephemeralIops": 1, - "ephemeralUsed": 1, - "filesystemName": "somestring" - }, - { - "blockConfigured": 1, - "blockIops": 1, - "blockUsed": 1, - "ephemeralConfigured": 1, - "ephemeralIops": 1, - "ephemeralUsed": 1, - "filesystemName": "somestring" - } - ], - "latencyDistribution": [ - { - "countsInTheBucket": 1, - "highEndOfLatencyBucket": 1, - "lowEndOfLatencyBucket": 1 - }, - { - "countsInTheBucket": 1, - "highEndOfLatencyBucket": 1, - "lowEndOfLatencyBucket": 1 - } - ], - "meanRequestLatency": 1, - "measurementInterval": 1, - "measurementsForVfScalingVersion": 1, - "memoryUsageArray": [ - { - "memoryBuffered": 1, - "memoryCached": 1, - "memoryConfigured": 1, - "memoryFree": 1, - "memorySlabRecl": 1, - "memorySlabUnrecl": 1, - "memoryUsed": 1, - "vmIdentifier": "somestring" - }, - { - "memoryBuffered": 1, - "memoryCached": 1, - "memoryConfigured": 1, - "memoryFree": 1, - "memorySlabRecl": 1, - "memorySlabUnrecl": 1, - "memoryUsed": 1, - "vmIdentifier": "somestring" - } - ], - "numberOfMediaPortsInUse": 1, - "requestRate": 1, - "vNicPerformanceArray": [ - { - "receivedBroadcastPacketsAccumulated": 1, - "receivedBroadcastPacketsDelta": 1, - "receivedDiscardedPacketsAccumulated": 1, - "receivedDiscardedPacketsDelta": 1, - "receivedErrorPacketsAccumulated": 1, - "receivedErrorPacketsDelta": 1, - "receivedMulticastPacketsAccumulated": 1, - "receivedMulticastPacketsDelta": 1, - "receivedOctetsAccumulated": 1, - "receivedOctetsDelta": 1, - "receivedTotalPacketsAccumulated": 1, - "receivedTotalPacketsDelta": 1, - "receivedUnicastPacketsAccumulated": 1, - "receivedUnicastPacketsDelta": 1, - "transmittedBroadcastPacketsAccumulated": 1, - "transmittedBroadcastPacketsDelta": 1, - "transmittedDiscardedPacketsAccumulated": 1, - "transmittedDiscardedPacketsDelta": 1, - "transmittedErrorPacketsAccumulated": 1, - "transmittedErrorPacketsDelta": 1, - "transmittedMulticastPacketsAccumulated": 1, - "transmittedMulticastPacketsDelta": 1, - "transmittedOctetsAccumulated": 1, - "transmittedOctetsDelta": 1, - "transmittedTotalPacketsAccumulated": 1, - "transmittedTotalPacketsDelta": 1, - "transmittedUnicastPacketsAccumulated": 1, - "transmittedUnicastPacketsDelta": 1, - "vNicIdentifier": "somestring", - "valuesAreSuspect": "true" - }, - { - "receivedBroadcastPacketsAccumulated": 1, - "receivedBroadcastPacketsDelta": 1, - "receivedDiscardedPacketsAccumulated": 1, - "receivedDiscardedPacketsDelta": 1, - "receivedErrorPacketsAccumulated": 1, - "receivedErrorPacketsDelta": 1, - "receivedMulticastPacketsAccumulated": 1, - "receivedMulticastPacketsDelta": 1, - "receivedOctetsAccumulated": 1, - "receivedOctetsDelta": 1, - "receivedTotalPacketsAccumulated": 1, - "receivedTotalPacketsDelta": 1, - "receivedUnicastPacketsAccumulated": 1, - "receivedUnicastPacketsDelta": 1, - "transmittedBroadcastPacketsAccumulated": 1, - "transmittedBroadcastPacketsDelta": 1, - "transmittedDiscardedPacketsAccumulated": 1, - "transmittedDiscardedPacketsDelta": 1, - "transmittedErrorPacketsAccumulated": 1, - "transmittedErrorPacketsDelta": 1, - "transmittedMulticastPacketsAccumulated": 1, - "transmittedMulticastPacketsDelta": 1, - "transmittedOctetsAccumulated": 1, - "transmittedOctetsDelta": 1, - "transmittedTotalPacketsAccumulated": 1, - "transmittedTotalPacketsDelta": 1, - "transmittedUnicastPacketsAccumulated": 1, - "transmittedUnicastPacketsDelta": 1, - "vNicIdentifier": "somestring", - "valuesAreSuspect": "true" - } - ], - "vnfcScalingMetric": 1 - }, - "mobileFlowFields": { - "additionalFields": [ - { - "name": "somestring", - "value": "somestring" - }, - { - "name": "somestring", - "value": "somestring" - } - ], - "appProtocolType": "somestring", - "appProtocolVersion": "somestring", - "applicationType": "somestring", - "cid": "somestring", - "connectionType": "somestring", - "ecgi": "somestring", - "flowDirection": "somestring", - "gtpPerFlowMetrics": { - "avgBitErrorRate": 1, - "avgPacketDelayVariation": 1, - "avgPacketLatency": 1, - "avgReceiveThroughput": 1, - "avgTransmitThroughput": 1, - "durConnectionFailedStatus": 1, - "durTunnelFailedStatus": 1, - "flowActivatedBy": "somestring", - "flowActivationEpoch": 1, - "flowActivationMicrosec": 1, - "flowActivationTime": "somestring", - "flowDeactivatedBy": "somestring", - "flowDeactivationEpoch": 1, - "flowDeactivationMicrosec": 1, - "flowDeactivationTime": "somestring", - "flowStatus": "somestring", - "gtpConnectionStatus": "somestring", - "gtpTunnelStatus": "somestring", - "ipTosCountList": [ - [ - 1, - 1 - ], - [ - 1, - 1 - ] - ], - "ipTosList": [ - "somestring", - "somestring" - ], - "largePacketRtt": 1, - "largePacketThreshold": 1, - "maxPacketDelayVariation": 1, - "maxReceiveBitRate": 1, - "maxTransmitBitRate": 1, - "mobileQciCosCountList": [ - [ - 1, - 1 - ], - [ - 1, - 1 - ] - ], - "mobileQciCosList": [ - "somestring", - "somestring" - ], - "numActivationFailures": 1, - "numBitErrors": 1, - "numBytesReceived": 1, - "numBytesTransmitted": 1, - "numDroppedPackets": 1, - "numGtpEchoFailures": 1, - "numGtpTunnelErrors": 1, - "numHttpErrors": 1, - "numL7BytesReceived": 1, - "numL7BytesTransmitted": 1, - "numLostPackets": 1, - "numOutOfOrderPackets": 1, - "numPacketErrors": 1, - "numPacketsReceivedExclRetrans": 1, - "numPacketsReceivedInclRetrans": 1, - "numPacketsTransmittedInclRetrans": 1, - "numRetries": 1, - "numTimeouts": 1, - "numTunneledL7BytesReceived": 1, - "roundTripTime": 1, - "tcpFlagCountList": [ - [ - 1, - 1 - ], - [ - 1, - 1 - ] - ], - "tcpFlagList": [ - "somestring", - "somestring" - ], - "timeToFirstByte": 1 - }, - "gtpProtocolType": "somestring", - "gtpVersion": "somestring", - "httpHeader": "somestring", - "imei": "somestring", - "imsi": "somestring", - "ipProtocolType": "somestring", - "ipVersion": "somestring", - "lac": "somestring", - "mcc": "somestring", - "mnc": "somestring", - "mobileFlowFieldsVersion": 1, - "msisdn": "somestring", - "otherEndpointIpAddress": "somestring", - "otherEndpointPort": 1, - "otherFunctionalRole": "somestring", - "rac": "somestring", - "radioAccessTechnology": "somestring", - "reportingEndpointIpAddr": "somestring", - "reportingEndpointPort": 1, - "sac": "somestring", - "samplingAlgorithm": 1, - "tac": "somestring", - "tunnelId": "somestring", - "vlanId": "somestring" - }, - "otherFields": { - "hashOfNameValuePairArrays": [ - { - "arrayOfFields": [ - { - "name": "somestring", - "value": "somestring" - }, - { - "name": "somestring", - "value": "somestring" - } - ], - "name": "somestring" - }, - { - "arrayOfFields": [ - { - "name": "somestring", - "value": "somestring" - }, - { - "name": "somestring", - "value": "somestring" - } - ], - "name": "somestring" - } - ], - "jsonObjects": [ - { - "nfSubscribedObjectName": "somestring", - "nfSubscriptionId": "somestring", - "objectInstances": [ - { - "objectInstance": {}, - "objectInstanceEpochMicrosec": 1, - "objectKeys": [ - { - "keyName": "somestring", - "keyOrder": 1, - "keyValue": "somestring" - }, - { - "keyName": "somestring", - "keyOrder": 1, - "keyValue": "somestring" - } - ] - }, - { - "objectInstance": {}, - "objectInstanceEpochMicrosec": 1, - "objectKeys": [ - { - "keyName": "somestring", - "keyOrder": 1, - "keyValue": "somestring" - }, - { - "keyName": "somestring", - "keyOrder": 1, - "keyValue": "somestring" - } - ] - } - ], - "objectName": "somestring", - "objectSchema": "somestring", - "objectSchemaUrl": "somestring" - }, - { - "nfSubscribedObjectName": "somestring", - "nfSubscriptionId": "somestring", - "objectInstances": [ - { - "objectInstance": {}, - "objectInstanceEpochMicrosec": 1, - "objectKeys": [ - { - "keyName": "somestring", - "keyOrder": 1, - "keyValue": "somestring" - }, - { - "keyName": "somestring", - "keyOrder": 1, - "keyValue": "somestring" - } - ] - }, - { - "objectInstance": {}, - "objectInstanceEpochMicrosec": 1, - "objectKeys": [ - { - "keyName": "somestring", - "keyOrder": 1, - "keyValue": "somestring" - }, - { - "keyName": "somestring", - "keyOrder": 1, - "keyValue": "somestring" - } - ] - } - ], - "objectName": "somestring", - "objectSchema": "somestring", - "objectSchemaUrl": "somestring" - } - ], - "nameValuePairs": [ - { - "name": "somestring", - "value": "somestring" - }, - { - "name": "somestring", - "value": "somestring" - } - ], - "otherFieldsVersion": 1 - }, - "sipSignalingFields": { - "additionalInformation": [ - { - "name": "somestring", - "value": "somestring" - }, - { - "name": "somestring", - "value": "somestring" - } - ], - "compressedSip": "somestring", - "correlator": "somestring", - "localIpAddress": "somestring", - "localPort": "somestring", - "remoteIpAddress": "somestring", - "remotePort": "somestring", - "sipSignalingFieldsVersion": 1, - "summarySip": "somestring", - "vendorVnfNameFields": { - "vendorName": "somestring", - "vfModuleName": "somestring", - "vnfName": "somestring" + "vfStatus": "Active", + "alarmAdditionalInformation": { + "PilotNumberPoolSize": "1000" } - }, - "stateChangeFields": { - "additionalFields": [ - { - "name": "somestring", - "value": "somestring" - }, - { - "name": "somestring", - "value": "somestring" - } - ], - "newState": "inService", - "oldState": "inService", - "stateChangeFieldsVersion": 1, - "stateInterface": "somestring" - }, - "syslogFields": { - "additionalFields": "somestring", - "eventSourceHost": "somestring", - "eventSourceType": "somestring", - "syslogFacility": 1, - "syslogFieldsVersion": 1, - "syslogMsg": "somestring", - "syslogPri": 1, - "syslogProc": "somestring", - "syslogProcId": 1, - "syslogSData": "somestring", - "syslogSdId": "somestring", - "syslogSev": "Alert", - "syslogTag": "somestring", - "syslogVer": 1 - }, - "thresholdCrossingAlertFields": { - "additionalFields": [ - { - "name": "somestring", - "value": "somestring" - }, - { - "name": "somestring", - "value": "somestring" - } - ], - "additionalParameters": [ - { - "criticality": "CRIT", - "name": "somestring", - "thresholdCrossed": "somestring", - "value": "somestring" - }, - { - "criticality": "CRIT", - "name": "somestring", - "thresholdCrossed": "somestring", - "value": "somestring" - } - ], - "alertAction": "CLEAR", - "alertDescription": "somestring", - "alertType": "CARD-ANOMALY", - "alertValue": "somestring", - "associatedAlertIdList": [ - "somestring", - "somestring" - ], - "collectionTimestamp": "somestring", - "dataCollector": "somestring", - "elementType": "somestring", - "eventSeverity": "CRITICAL", - "eventStartTimestamp": "somestring", - "interfaceName": "somestring", - "networkService": "somestring", - "possibleRootCause": "somestring", - "thresholdCrossingFieldsVersion": 1 - }, - "voiceQualityFields": { - "additionalInformation": [ - { - "name": "somestring", - "value": "somestring" - }, - { - "name": "somestring", - "value": "somestring" - } - ], - "calleeSideCodec": "somestring", - "callerSideCodec": "somestring", - "correlator": "somestring", - "endOfCallVqmSummaries": { - "adjacencyName": "somestring", - "endpointDescription": "Caller", - "endpointJitter": 1, - "endpointRtpOctetsDiscarded": 1, - "endpointRtpOctetsReceived": 1, - "endpointRtpOctetsSent": 1, - "endpointRtpPacketsDiscarded": 1, - "endpointRtpPacketsReceived": 1, - "endpointRtpPacketsSent": 1, - "localJitter": 1, - "localRtpOctetsDiscarded": 1, - "localRtpOctetsReceived": 1, - "localRtpOctetsSent": 1, - "localRtpPacketsDiscarded": 1, - "localRtpPacketsReceived": 1, - "localRtpPacketsSent": 1, - "mosCqe": 1, - "packetLossPercent": 1, - "packetsLost": 1, - "rFactor": 1, - "roundTripDelay": 1 - }, - "midCallRtcp": "somestring", - "phoneNumber": "somestring", - "vendorVnfNameFields": { - "vendorName": "somestring", - "vfModuleName": "somestring", - "vnfName": "somestring" - }, - "voiceQualityFieldsVersion": 1 } } } -Responses -+++++++++ - -**200** -^^^^^^^ - -VES Event Accepted. - -Type: :ref:`ApiResponseMessage ` - -**Example:** - -.. code-block:: javascript - - { - "code": 1, - "message": "somestring", - "type": "somestring" - } - -**400** -^^^^^^^ - -Bad request provided - -Type: :ref:`ApiResponseMessage ` - -**Example:** - -.. code-block:: javascript - - { - "code": 1, - "message": "somestring", - "type": "somestring" - } - -**401** -^^^^^^^ - -Unauthorized request - -Type: :ref:`ApiResponseMessage ` - -**Example:** - -.. code-block:: javascript - - { - "code": 1, - "message": "somestring", - "type": "somestring" - } - -**503** -^^^^^^^ - -Service Unavailable - -Type: :ref:`ApiResponseMessage ` - -**Example:** - -.. code-block:: javascript - - { - "code": 1, - "message": "somestring", - "type": "somestring" - } - -Security -++++++++ - -.. csv-table:: - :header: "Security Schema", "Scopes" - :widths: 15, 45 - - :ref:`basicAuth `, "" - -Data Structures -~~~~~~~~~~~~~~~ - -ApiResponseMessage Model Structure ----------------------------------- - -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 - - code | No | integer | int32 | | - message | No | string | | | - type | No | string | | | - -VES5Request Model Structure ---------------------------- - -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 - - event | No | :ref:`event ` | | | - -.. _d_df249c51a416f54e5609f2ffffe059c0: - -codecsInUse Model Structure ---------------------------- - -number of times an identified codec was used over the measurementInterval - -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 - - codecIdentifier | Yes | string | | | - numberInUse | Yes | integer | | | - -.. _d_a68e1b21fdcef792db73f711201c56ad: - -commonEventHeader Model Structure ---------------------------------- - -fields common to all events - -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 - - domain | Yes | string | | {'enum': ['fault', 'heartbeat', 'measurementsForVfScaling', 'mobileFlow', 'other', 'sipSignaling', 'stateChange', 'syslog', 'thresholdCrossingAlert', 'voiceQuality']} | the eventing domain associated with the event - eventId | Yes | string | | | event key that is unique to the event source - eventName | Yes | string | | | unique event name - eventType | No | string | | | for example - applicationVnf, guestOS, hostOS, platform - internalHeaderFields | No | :ref:`internalHeaderFields ` | | | - lastEpochMicrosec | Yes | number | | | the latest unix time aka epoch time associated with the event from any component--as microseconds elapsed since 1 Jan 1970 not including leap seconds - nfNamingCode | No | string | | | 4 character network function type, aligned with vnf naming standards - nfcNamingCode | No | string | | | 3 character network function component type, aligned with vfc naming standards - priority | Yes | string | | {'enum': ['High', 'Medium', 'Normal', 'Low']} | processing priority - reportingEntityId | No | string | | | UUID identifying the entity reporting the event, for example an OAM VM; must be populated by the ATT enrichment process - reportingEntityName | Yes | string | | | name of the entity reporting the event, for example, an EMS name; may be the same as sourceName - sequence | Yes | integer | | | ordering of events communicated by an event source instance or 0 if not needed - sourceId | No | string | | | UUID identifying the entity experiencing the event issue; must be populated by the ATT enrichment process - sourceName | Yes | string | | | name of the entity experiencing the event issue - startEpochMicrosec | Yes | number | | | the earliest unix time aka epoch time associated with the event from any component--as microseconds elapsed since 1 Jan 1970 not including leap seconds - version | Yes | number | | | version of the event header - -.. _d_6e043350cba5faafe21de49c2f6fd745: - -counter Model Structure ------------------------ - -performance counter - -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 - - criticality | Yes | string | | {'enum': ['CRIT', 'MAJ']} | - name | Yes | string | | | - thresholdCrossed | Yes | string | | | - value | Yes | string | | | - -.. _d_6f081937f31c09078c8acf9212d6c449: - -cpuUsage Model Structure ------------------------- - -usage of an identified CPU - -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 - - cpuIdentifier | Yes | string | | | cpu identifer - cpuIdle | No | number | | | percentage of CPU time spent in the idle task - cpuUsageInterrupt | No | number | | | percentage of time spent servicing interrupts - cpuUsageNice | No | number | | | percentage of time spent running user space processes that have been niced - cpuUsageSoftIrq | No | number | | | percentage of time spent handling soft irq interrupts - cpuUsageSteal | No | number | | | percentage of time spent in involuntary wait which is neither user, system or idle time and is effectively time that went missing - cpuUsageSystem | No | number | | | percentage of time spent on system tasks running the kernel - cpuUsageUser | No | number | | | percentage of time spent running un-niced user space processes - cpuWait | No | number | | | percentage of CPU time spent waiting for I/O operations to complete - percentUsage | Yes | number | | | aggregate cpu usage of the virtual machine on which the VNFC reporting the event is running - -.. _d_bb7a69764c21219953df76826934938e: -diskUsage Model Structure -------------------------- -usage of an identified disk - -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 - - diskIdentifier | Yes | string | | | disk identifier - diskIoTimeAvg | No | number | | | milliseconds spent doing input/output operations over 1 sec; treat this metric as a device load percentage where 1000ms matches 100% load; provide the average over the measurement interval - diskIoTimeLast | No | number | | | milliseconds spent doing input/output operations over 1 sec; treat this metric as a device load percentage where 1000ms matches 100% load; provide the last value measurement within the measurement interval - diskIoTimeMax | No | number | | | milliseconds spent doing input/output operations over 1 sec; treat this metric as a device load percentage where 1000ms matches 100% load; provide the maximum value measurement within the measurement interval - diskIoTimeMin | No | number | | | milliseconds spent doing input/output operations over 1 sec; treat this metric as a device load percentage where 1000ms matches 100% load; provide the minimum value measurement within the measurement interval - diskMergedReadAvg | No | number | | | number of logical read operations that were merged into physical read operations, e.g., two logical reads were served by one physical disk access; provide the average measurement within the measurement interval - diskMergedReadLast | No | number | | | number of logical read operations that were merged into physical read operations, e.g., two logical reads were served by one physical disk access; provide the last value measurement within the measurement interval - diskMergedReadMax | No | number | | | number of logical read operations that were merged into physical read operations, e.g., two logical reads were served by one physical disk access; provide the maximum value measurement within the measurement interval - diskMergedReadMin | No | number | | | number of logical read operations that were merged into physical read operations, e.g., two logical reads were served by one physical disk access; provide the minimum value measurement within the measurement interval - diskMergedWriteAvg | No | number | | | number of logical write operations that were merged into physical write operations, e.g., two logical writes were served by one physical disk access; provide the average measurement within the measurement interval - diskMergedWriteLast | No | number | | | number of logical write operations that were merged into physical write operations, e.g., two logical writes were served by one physical disk access; provide the last value measurement within the measurement interval - diskMergedWriteMax | No | number | | | number of logical write operations that were merged into physical write operations, e.g., two logical writes were served by one physical disk access; provide the maximum value measurement within the measurement interval - diskMergedWriteMin | No | number | | | number of logical write operations that were merged into physical write operations, e.g., two logical writes were served by one physical disk access; provide the minimum value measurement within the measurement interval - diskOctetsReadAvg | No | number | | | number of octets per second read from a disk or partition; provide the average measurement within the measurement interval - diskOctetsReadLast | No | number | | | number of octets per second read from a disk or partition; provide the last measurement within the measurement interval - diskOctetsReadMax | No | number | | | number of octets per second read from a disk or partition; provide the maximum measurement within the measurement interval - diskOctetsReadMin | No | number | | | number of octets per second read from a disk or partition; provide the minimum measurement within the measurement interval - diskOctetsWriteAvg | No | number | | | number of octets per second written to a disk or partition; provide the average measurement within the measurement interval - diskOctetsWriteLast | No | number | | | number of octets per second written to a disk or partition; provide the last measurement within the measurement interval - diskOctetsWriteMax | No | number | | | number of octets per second written to a disk or partition; provide the maximum measurement within the measurement interval - diskOctetsWriteMin | No | number | | | number of octets per second written to a disk or partition; provide the minimum measurement within the measurement interval - diskOpsReadAvg | No | number | | | number of read operations per second issued to the disk; provide the average measurement within the measurement interval - diskOpsReadLast | No | number | | | number of read operations per second issued to the disk; provide the last measurement within the measurement interval - diskOpsReadMax | No | number | | | number of read operations per second issued to the disk; provide the maximum measurement within the measurement interval - diskOpsReadMin | No | number | | | number of read operations per second issued to the disk; provide the minimum measurement within the measurement interval - diskOpsWriteAvg | No | number | | | number of write operations per second issued to the disk; provide the average measurement within the measurement interval - diskOpsWriteLast | No | number | | | number of write operations per second issued to the disk; provide the last measurement within the measurement interval - diskOpsWriteMax | No | number | | | number of write operations per second issued to the disk; provide the maximum measurement within the measurement interval - diskOpsWriteMin | No | number | | | number of write operations per second issued to the disk; provide the minimum measurement within the measurement interval - diskPendingOperationsAvg | No | number | | | queue size of pending I/O operations per second; provide the average measurement within the measurement interval - diskPendingOperationsLast | No | number | | | queue size of pending I/O operations per second; provide the last measurement within the measurement interval - diskPendingOperationsMax | No | number | | | queue size of pending I/O operations per second; provide the maximum measurement within the measurement interval - diskPendingOperationsMin | No | number | | | queue size of pending I/O operations per second; provide the minimum measurement within the measurement interval - diskTimeReadAvg | No | number | | | milliseconds a read operation took to complete; provide the average measurement within the measurement interval - diskTimeReadLast | No | number | | | milliseconds a read operation took to complete; provide the last measurement within the measurement interval - diskTimeReadMax | No | number | | | milliseconds a read operation took to complete; provide the maximum measurement within the measurement interval - diskTimeReadMin | No | number | | | milliseconds a read operation took to complete; provide the minimum measurement within the measurement interval - diskTimeWriteAvg | No | number | | | milliseconds a write operation took to complete; provide the average measurement within the measurement interval - diskTimeWriteLast | No | number | | | milliseconds a write operation took to complete; provide the last measurement within the measurement interval - diskTimeWriteMax | No | number | | | milliseconds a write operation took to complete; provide the maximum measurement within the measurement interval - diskTimeWriteMin | No | number | | | milliseconds a write operation took to complete; provide the minimum measurement within the measurement interval - -.. _d_c911a0a8abdb511d7cd6590f383d817b: - -endOfCallVqmSummaries Model Structure -------------------------------------- - -provides end of call voice quality metrics - -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 - - adjacencyName | Yes | string | | | adjacency name - endpointDescription | Yes | string | | {'enum': ['Caller', 'Callee']} | Either Caller or Callee - endpointJitter | No | number | | | - endpointRtpOctetsDiscarded | No | number | | | - endpointRtpOctetsReceived | No | number | | | - endpointRtpOctetsSent | No | number | | | - endpointRtpPacketsDiscarded | No | number | | | - endpointRtpPacketsReceived | No | number | | | - endpointRtpPacketsSent | No | number | | | - localJitter | No | number | | | - localRtpOctetsDiscarded | No | number | | | - localRtpOctetsReceived | No | number | | | - localRtpOctetsSent | No | number | | | - localRtpPacketsDiscarded | No | number | | | - localRtpPacketsReceived | No | number | | | - localRtpPacketsSent | No | number | | | - mosCqe | No | number | | | 1-5 1dp - packetLossPercent | No | number | | | Calculated percentage packet loss based on Endpoint RTP packets lost (as reported in RTCP) and Local RTP packets sent. Direction is based on Endpoint description (Caller, Callee). Decimal (2 dp) - packetsLost | No | number | | | - rFactor | No | number | | | 0-100 - roundTripDelay | No | number | | | millisecs - -.. _d_0eeffb3cd3e31135c2f3cf8ee4a2bdbb: - -event Model Structure ---------------------- - -the root level of the common event format - -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 - - commonEventHeader | Yes | :ref:`commonEventHeader ` | | | - faultFields | No | :ref:`faultFields ` | | | - heartbeatFields | No | :ref:`heartbeatFields ` | | | - measurementsForVfScalingFields | No | :ref:`measurementsForVfScalingFields ` | | | - mobileFlowFields | No | :ref:`mobileFlowFields ` | | | - otherFields | No | :ref:`otherFields ` | | | - sipSignalingFields | No | :ref:`sipSignalingFields ` | | | - stateChangeFields | No | :ref:`stateChangeFields ` | | | - syslogFields | No | :ref:`syslogFields ` | | | - thresholdCrossingAlertFields | No | :ref:`thresholdCrossingAlertFields ` | | | - voiceQualityFields | No | :ref:`voiceQualityFields ` | | | - -.. _d_4089a4a9ee684770c6f37a588a577589: - -eventDomainThrottleSpecification Model Structure ------------------------------------------------- - -specification of what information to suppress within an event domain - -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 - - eventDomain | Yes | string | | | Event domain enum from the commonEventHeader domain field - suppressedFieldNames | No | array of string | | | List of optional field names in the event block that should not be sent to the Event Listener - suppressedNvPairsList | No | array of :ref:`suppressedNvPairs ` | | | Optional list of specific NvPairsNames to suppress within a given Name-Value Field - -.. _d_e7aa5254472f7823fdd6d5a090bfd0a4: - -faultFields Model Structure ---------------------------- - -fields specific to fault events - -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 - - alarmAdditionalInformation | No | array of :ref:`field ` | | | additional alarm information - alarmCondition | Yes | string | | | alarm condition reported by the device - alarmInterfaceA | No | string | | | card, port, channel or interface name of the device generating the alarm - eventCategory | No | string | | | Event category, for example: license, link, routing, security, signaling - eventSeverity | Yes | string | | {'enum': ['CRITICAL', 'MAJOR', 'MINOR', 'WARNING', 'NORMAL']} | event severity - eventSourceType | Yes | string | | | type of event source; examples: card, host, other, port, portThreshold, router, slotThreshold, switch, virtualMachine, virtualNetworkFunction - faultFieldsVersion | Yes | number | | | version of the faultFields block - specificProblem | Yes | string | | | short description of the alarm or problem - vfStatus | Yes | string | | {'enum': ['Active', 'Idle', 'Preparing to terminate', 'Ready to terminate', 'Requesting termination']} | virtual function status enumeration - -.. _d_76d7f35861442236cee9f716ea1e1540: - -featuresInUse Model Structure ------------------------------ - -number of times an identified feature was used over the measurementInterval - -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 - - featureIdentifier | Yes | string | | | - featureUtilization | Yes | integer | | | - -.. _d_a9799335edbbc52c7f0c5191f7bd09ee: - -field Model Structure ---------------------- - -name value pair - -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 - - name | Yes | string | | | - value | Yes | string | | | - -.. _d_18e1fa5fd6774deefce826b075f8b6e7: - -filesystemUsage Model Structure -------------------------------- - -disk usage of an identified virtual machine in gigabytes and/or gigabytes per -second - -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 - - blockConfigured | Yes | number | | | - blockIops | Yes | number | | | - blockUsed | Yes | number | | | - ephemeralConfigured | Yes | number | | | - ephemeralIops | Yes | number | | | - ephemeralUsed | Yes | number | | | - filesystemName | Yes | string | | | - -.. _d_bb1527d221e848e0896c78552979238b: - -gtpPerFlowMetrics Model Structure ---------------------------------- - -Mobility GTP Protocol per flow metrics - -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 - - avgBitErrorRate | Yes | number | | | average bit error rate - avgPacketDelayVariation | Yes | number | | | Average packet delay variation or jitter in milliseconds for received packets: Average difference between the packet timestamp and time received for all pairs of consecutive packets - avgPacketLatency | Yes | number | | | average delivery latency - avgReceiveThroughput | Yes | number | | | average receive throughput - avgTransmitThroughput | Yes | number | | | average transmit throughput - durConnectionFailedStatus | No | number | | | duration of failed state in milliseconds, computed as the cumulative time between a failed echo request and the next following successful error request, over this reporting interval - durTunnelFailedStatus | No | number | | | Duration of errored state, computed as the cumulative time between a tunnel error indicator and the next following non-errored indicator, over this reporting interval - flowActivatedBy | No | string | | | Endpoint activating the flow - flowActivationEpoch | Yes | number | | | Time the connection is activated in the flow (connection) being reported on, or transmission time of the first packet if activation time is not available - flowActivationMicrosec | Yes | number | | | Integer microseconds for the start of the flow connection - flowActivationTime | No | string | | | time the connection is activated in the flow being reported on, or transmission time of the first packet if activation time is not available; with RFC 2822 compliant format: Sat, 13 Mar 2010 11:29:05 -0800 - flowDeactivatedBy | No | string | | | Endpoint deactivating the flow - flowDeactivationEpoch | Yes | number | | | Time for the start of the flow connection, in integer UTC epoch time aka UNIX time - flowDeactivationMicrosec | Yes | number | | | Integer microseconds for the start of the flow connection - flowDeactivationTime | Yes | string | | | Transmission time of the first packet in the flow connection being reported on; with RFC 2822 compliant format: Sat, 13 Mar 2010 11:29:05 -0800 - flowStatus | Yes | string | | | connection status at reporting time as a working / inactive / failed indicator value - gtpConnectionStatus | No | string | | | Current connection state at reporting time - gtpTunnelStatus | No | string | | | Current tunnel state at reporting time - ipTosCountList | No | array of array of number | | | array of key: value pairs where the keys are drawn from the IP Type-of-Service identifiers which range from '0' to '255', and the values are the count of packets that had those ToS identifiers in the flow - ipTosList | No | array of string | | | Array of unique IP Type-of-Service values observed in the flow where values range from '0' to '255' - largePacketRtt | No | number | | | large packet round trip time - largePacketThreshold | No | number | | | large packet threshold being applied - maxPacketDelayVariation | Yes | number | | | Maximum packet delay variation or jitter in milliseconds for received packets: Maximum of the difference between the packet timestamp and time received for all pairs of consecutive packets - maxReceiveBitRate | No | number | | | maximum receive bit rate - maxTransmitBitRate | No | number | | | maximum transmit bit rate - mobileQciCosCountList | No | array of array of number | | | array of key: value pairs where the keys are drawn from LTE QCI or UMTS class of service strings, and the values are the count of packets that had those strings in the flow - mobileQciCosList | No | array of string | | | Array of unique LTE QCI or UMTS class-of-service values observed in the flow - numActivationFailures | Yes | number | | | Number of failed activation requests, as observed by the reporting node - numBitErrors | Yes | number | | | number of errored bits - numBytesReceived | Yes | number | | | number of bytes received, including retransmissions - numBytesTransmitted | Yes | number | | | number of bytes transmitted, including retransmissions - numDroppedPackets | Yes | number | | | number of received packets dropped due to errors per virtual interface - numGtpEchoFailures | No | number | | | Number of Echo request path failures where failed paths are defined in 3GPP TS 29.281 sec 7.2.1 and 3GPP TS 29.060 sec. 11.2 - numGtpTunnelErrors | No | number | | | Number of tunnel error indications where errors are defined in 3GPP TS 29.281 sec 7.3.1 and 3GPP TS 29.060 sec. 11.1 - numHttpErrors | No | number | | | Http error count - numL7BytesReceived | Yes | number | | | number of tunneled layer 7 bytes received, including retransmissions - numL7BytesTransmitted | Yes | number | | | number of tunneled layer 7 bytes transmitted, excluding retransmissions - numLostPackets | Yes | number | | | number of lost packets - numOutOfOrderPackets | Yes | number | | | number of out-of-order packets - numPacketErrors | Yes | number | | | number of errored packets - numPacketsReceivedExclRetrans | Yes | number | | | number of packets received, excluding retransmission - numPacketsReceivedInclRetrans | Yes | number | | | number of packets received, including retransmission - numPacketsTransmittedInclRetrans | Yes | number | | | number of packets transmitted, including retransmissions - numRetries | Yes | number | | | number of packet retries - numTimeouts | Yes | number | | | number of packet timeouts - numTunneledL7BytesReceived | Yes | number | | | number of tunneled layer 7 bytes received, excluding retransmissions - roundTripTime | Yes | number | | | round trip time - tcpFlagCountList | No | array of array of number | | | array of key: value pairs where the keys are drawn from TCP Flags and the values are the count of packets that had that TCP Flag in the flow - tcpFlagList | No | array of string | | | Array of unique TCP Flags observed in the flow - timeToFirstByte | Yes | number | | | Time in milliseconds between the connection activation and first byte received - -.. _d_6ea626e11ce7887cddd39c36ff4f0926: - -heartbeatFields Model Structure -------------------------------- - -optional field block for fields specific to heartbeat events - -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 - - additionalFields | No | array of :ref:`field ` | | | additional heartbeat fields if needed - heartbeatFieldsVersion | Yes | number | | | version of the heartbeatFields block - heartbeatInterval | Yes | integer | | | current heartbeat interval in seconds - -.. _d_2873d30f54c59ef635c1fc0cbbaa89f1: - -internalHeaderFields Model Structure ------------------------------------- - -enrichment fields for internal VES Event Listener service use only, not -supplied by event sources - -.. _d_d8868aee802ae8e2b1e7ea1c4ecc1f54: - -jsonObject Model Structure --------------------------- - -json object schema, name and other meta-information along with one or more -object instances - -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 - - nfSubscribedObjectName | No | string | | | name of the object associated with the nfSubscriptonId - nfSubscriptionId | No | string | | | identifies an openConfig telemetry subscription on a network function, which configures the network function to send complex object data associated with the jsonObject - objectInstances | Yes | array of :ref:`jsonObjectInstance ` | | | one or more instances of the jsonObject - objectName | Yes | string | | | name of the JSON Object - objectSchema | No | string | | | json schema for the object - objectSchemaUrl | No | string | | | Url to the json schema for the object - -.. _d_7bccbee07bd3044bd0b929cb6b567c03: - -jsonObjectInstance Model Structure ----------------------------------- - -meta-information about an instance of a jsonObject along with the actual -object instance - -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 - - objectInstance | Yes | :ref:`objectInstance ` | | | an instance conforming to the jsonObject schema - objectInstanceEpochMicrosec | No | number | | | the unix time aka epoch time associated with this objectInstance--as microseconds elapsed since 1 Jan 1970 not including leap seconds - objectKeys | No | array of :ref:`key ` | | | an ordered set of keys that identifies this particular instance of jsonObject - -.. _i_4cf8290bf745cd386f0a55ec865aafd5: - -**Objectinstance schema:** - -an instance conforming to the jsonObject schema - -.. _d_a217491e9c44487ec7bbd9ce3ac9dddb: - -key Model Structure -------------------- - -tuple which provides the name of a key along with its value and relative order - -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 - - keyName | Yes | string | | | name of the key - keyOrder | No | integer | | | relative sequence or order of the key with respect to other keys - keyValue | No | string | | | value of the key - -.. _d_dc21244021b6cb0e0af16166e4600d99: - -latencyBucketMeasure Model Structure ------------------------------------- - -number of counts falling within a defined latency bucket - -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 - - countsInTheBucket | Yes | number | | | - highEndOfLatencyBucket | No | number | | | - lowEndOfLatencyBucket | No | number | | | - -.. _d_669cf98e276c9992abd27056c432bbb2: - -measurementsForVfScalingFields Model Structure ----------------------------------------------- - -measurementsForVfScaling fields - -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 - - additionalFields | No | array of :ref:`field ` | | | additional name-value-pair fields - additionalMeasurements | No | array of :ref:`namedArrayOfFields ` | | | array of named name-value-pair arrays - additionalObjects | No | array of :ref:`jsonObject ` | | | array of JSON objects described by name, schema and other meta-information - codecUsageArray | No | array of :ref:`codecsInUse ` | | | array of codecs in use - concurrentSessions | No | integer | | | peak concurrent sessions for the VM or VNF over the measurementInterval - configuredEntities | No | integer | | | over the measurementInterval, peak total number of: users, subscribers, devices, adjacencies, etc., for the VM, or subscribers, devices, etc., for the VNF - cpuUsageArray | No | array of :ref:`cpuUsage ` | | | usage of an array of CPUs - diskUsageArray | No | array of :ref:`diskUsage ` | | | usage of an array of disks - featureUsageArray | No | array of :ref:`featuresInUse ` | | | array of features in use - filesystemUsageArray | No | array of :ref:`filesystemUsage ` | | | filesystem usage of the VM on which the VNFC reporting the event is running - latencyDistribution | No | array of :ref:`latencyBucketMeasure ` | | | array of integers representing counts of requests whose latency in milliseconds falls within per-VNF configured ranges - meanRequestLatency | No | number | | | mean seconds required to respond to each request for the VM on which the VNFC reporting the event is running - measurementInterval | Yes | number | | | interval over which measurements are being reported in seconds - measurementsForVfScalingVersion | Yes | number | | | version of the measurementsForVfScaling block - memoryUsageArray | No | array of :ref:`memoryUsage ` | | | memory usage of an array of VMs - numberOfMediaPortsInUse | No | integer | | | number of media ports in use - requestRate | No | number | | | peak rate of service requests per second to the VNF over the measurementInterval - vNicPerformanceArray | No | array of :ref:`vNicPerformance ` | | | usage of an array of virtual network interface cards - vnfcScalingMetric | No | integer | | | represents busy-ness of the VNF from 0 to 100 as reported by the VNFC - -.. _d_7a758ee807f435a8ba5568e6da6ed597: - -memoryUsage Model Structure ---------------------------- - -memory usage of an identified virtual machine - -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 - - memoryBuffered | No | number | | | kibibytes of temporary storage for raw disk blocks - memoryCached | No | number | | | kibibytes of memory used for cache - memoryConfigured | No | number | | | kibibytes of memory configured in the virtual machine on which the VNFC reporting the event is running - memoryFree | Yes | number | | | kibibytes of physical RAM left unused by the system - memorySlabRecl | No | number | | | the part of the slab that can be reclaimed such as caches measured in kibibytes - memorySlabUnrecl | No | number | | | the part of the slab that cannot be reclaimed even when lacking memory measured in kibibytes - memoryUsed | Yes | number | | | total memory minus the sum of free, buffered, cached and slab memory measured in kibibytes - vmIdentifier | Yes | string | | | virtual machine identifier associated with the memory metrics - -.. _d_dc18fe1d28fe3ef664c3f4ab777d8424: - -mobileFlowFields Model Structure --------------------------------- - -mobileFlow fields - -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 - - additionalFields | No | array of :ref:`field ` | | | additional mobileFlow fields if needed - appProtocolType | No | string | | | application protocol - appProtocolVersion | No | string | | | application protocol version - applicationType | No | string | | | Application type inferred - cid | No | string | | | cell id - connectionType | No | string | | | Abbreviation referencing a 3GPP reference point e.g., S1-U, S11, etc - ecgi | No | string | | | Evolved Cell Global Id - flowDirection | Yes | string | | | Flow direction, indicating if the reporting node is the source of the flow or destination for the flow - gtpPerFlowMetrics | Yes | :ref:`gtpPerFlowMetrics ` | | | - gtpProtocolType | No | string | | | GTP protocol - gtpVersion | No | string | | | GTP protocol version - httpHeader | No | string | | | HTTP request header, if the flow connects to a node referenced by HTTP - imei | No | string | | | IMEI for the subscriber UE used in this flow, if the flow connects to a mobile device - imsi | No | string | | | IMSI for the subscriber UE used in this flow, if the flow connects to a mobile device - ipProtocolType | Yes | string | | | IP protocol type e.g., TCP, UDP, RTP... - ipVersion | Yes | string | | | IP protocol version e.g., IPv4, IPv6 - lac | No | string | | | location area code - mcc | No | string | | | mobile country code - mnc | No | string | | | mobile network code - mobileFlowFieldsVersion | Yes | number | | | version of the mobileFlowFields block - msisdn | No | string | | | MSISDN for the subscriber UE used in this flow, as an integer, if the flow connects to a mobile device - otherEndpointIpAddress | Yes | string | | | IP address for the other endpoint, as used for the flow being reported on - otherEndpointPort | Yes | integer | | | IP Port for the reporting entity, as used for the flow being reported on - otherFunctionalRole | No | string | | | Functional role of the other endpoint for the flow being reported on e.g., MME, S-GW, P-GW, PCRF... - rac | No | string | | | routing area code - radioAccessTechnology | No | string | | | Radio Access Technology e.g., 2G, 3G, LTE - reportingEndpointIpAddr | Yes | string | | | IP address for the reporting entity, as used for the flow being reported on - reportingEndpointPort | Yes | integer | | | IP port for the reporting entity, as used for the flow being reported on - sac | No | string | | | service area code - samplingAlgorithm | No | integer | | | Integer identifier for the sampling algorithm or rule being applied in calculating the flow metrics if metrics are calculated based on a sample of packets, or 0 if no sampling is applied - tac | No | string | | | transport area code - tunnelId | No | string | | | tunnel identifier - vlanId | No | string | | | VLAN identifier used by this flow - -.. _d_38de3331d60414da3eea18e8f7e0ecf9: - -namedArrayOfFields Model Structure ----------------------------------- - -an array of name value pairs along with a name for the array - -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 - - arrayOfFields | Yes | array of :ref:`field ` | | | array of name value pairs - name | Yes | string | | | - -.. _d_5a79cd7ce784d60fd832d9c7c0a24322: - -otherFields Model Structure ---------------------------- - -fields for events belonging to the 'other' domain of the commonEventHeader -domain enumeration - -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 - - hashOfNameValuePairArrays | No | array of :ref:`namedArrayOfFields ` | | | array of named name-value-pair arrays - jsonObjects | No | array of :ref:`jsonObject ` | | | array of JSON objects described by name, schema and other meta-information - nameValuePairs | No | array of :ref:`field ` | | | array of name-value pairs - otherFieldsVersion | Yes | number | | | version of the otherFields block - -.. _d_6747334473cf2b305fe43b61a40656e1: - -requestError Model Structure ----------------------------- - -standard request error data structure - -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 - - messageId | Yes | string | | | Unique message identifier of the format ABCnnnn where ABC is either SVC for Service Exceptions or POL for Policy Exception - text | Yes | string | | | Message text, with replacement variables marked with %n, where n is an index into the list of elements, starting at 1 - url | No | string | | | Hyperlink to a detailed error resource e.g., an HTML page for browser user agents - variables | No | string | | | List of zero or more strings that represent the contents of the variables used by the message text - -.. _d_c3e191f0b26ddd68f927ac0c8b551c5e: - -sipSignalingFields Model Structure ----------------------------------- - -sip signaling fields - -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 - - additionalInformation | No | array of :ref:`field ` | | | additional sip signaling fields if needed - compressedSip | No | string | | | the full SIP request/response including headers and bodies - correlator | Yes | string | | | this is the same for all events on this call - localIpAddress | Yes | string | | | IP address on VNF - localPort | Yes | string | | | port on VNF - remoteIpAddress | Yes | string | | | IP address of peer endpoint - remotePort | Yes | string | | | port of peer endpoint - sipSignalingFieldsVersion | Yes | number | | | version of the sipSignalingFields block - summarySip | No | string | | | the SIP Method or Response (INVITE, 200 OK, BYE, etc) - vendorVnfNameFields | Yes | :ref:`vendorVnfNameFields ` | | | - -.. _d_c5450f1a263d0a2b0c64c96119f7d759: - -stateChangeFields Model Structure ---------------------------------- - -stateChange fields - -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 - - additionalFields | No | array of :ref:`field ` | | | additional stateChange fields if needed - newState | Yes | string | | {'enum': ['inService', 'maintenance', 'outOfService']} | new state of the entity - oldState | Yes | string | | {'enum': ['inService', 'maintenance', 'outOfService']} | previous state of the entity - stateChangeFieldsVersion | Yes | number | | | version of the stateChangeFields block - stateInterface | Yes | string | | | card or port name of the entity that changed state - -.. _d_52877eda2d273b282063857f97fa7ff4: - -suppressedNvPairs Model Structure ---------------------------------- - -List of specific NvPairsNames to suppress within a given Name-Value Field -for event Throttling - -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 - - nvPairFieldName | Yes | string | | | Name of the field within which are the nvpair names to suppress - suppressedNvPairNames | Yes | array of string | | | Array of nvpair names to suppress within the nvpairFieldName - -.. _d_782271970af04a3b0e5a5da9b30996d2: - -syslogFields Model Structure ----------------------------- - -sysLog fields - -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 - - additionalFields | No | string | | | additional syslog fields if needed provided as name=value - eventSourceHost | No | string | | | hostname of the device - eventSourceType | Yes | string | | | type of event source; examples: other, router, switch, host, card, port, slotThreshold, portThreshold, virtualMachine, virtualNetworkFunction - syslogFacility | No | integer | | | numeric code from 0 to 23 for facility--see table in documentation - syslogFieldsVersion | Yes | number | | | version of the syslogFields block - syslogMsg | Yes | string | | | syslog message - syslogPri | No | integer | | | 0-192 combined severity and facility - syslogProc | No | string | | | identifies the application that originated the message - syslogProcId | No | number | | | a change in the value of this field indicates a discontinuity in syslog reporting - syslogSData | No | string | | | syslog structured data consisting of a structured data Id followed by a set of key value pairs - syslogSdId | No | string | | | 0-32 char in format name@number for example ourSDID@32473 - syslogSev | No | string | | {'enum': ['Alert', 'Critical', 'Debug', 'Emergency', 'Error', 'Info', 'Notice', 'Warning']} | numerical Code for severity derived from syslogPri as remaider of syslogPri / 8 - syslogTag | Yes | string | | | msgId indicating the type of message such as TCPOUT or TCPIN; NILVALUE should be used when no other value can be provided - syslogVer | No | number | | | IANA assigned version of the syslog protocol specification - typically 1 - -.. _d_bd95ac8a5536a5bb5e6a0de7e64b9f20: - -thresholdCrossingAlertFields Model Structure --------------------------------------------- - -fields specific to threshold crossing alert events - -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 - - additionalFields | No | array of :ref:`field ` | | | additional threshold crossing alert fields if needed - additionalParameters | Yes | array of :ref:`counter ` | | | performance counters - alertAction | Yes | string | | {'enum': ['CLEAR', 'CONT', 'SET']} | Event action - alertDescription | Yes | string | | | Unique short alert description such as IF-SHUB-ERRDROP - alertType | Yes | string | | {'enum': ['CARD-ANOMALY', 'ELEMENT-ANOMALY', 'INTERFACE-ANOMALY', 'SERVICE-ANOMALY']} | Event type - alertValue | No | string | | | Calculated API value (if applicable) - associatedAlertIdList | No | array of string | | | List of eventIds associated with the event being reported - collectionTimestamp | Yes | string | | | Time when the performance collector picked up the data; with RFC 2822 compliant format: Sat, 13 Mar 2010 11:29:05 -0800 - dataCollector | No | string | | | Specific performance collector instance used - elementType | No | string | | | type of network element - internal ATT field - eventSeverity | Yes | string | | {'enum': ['CRITICAL', 'MAJOR', 'MINOR', 'WARNING', 'NORMAL']} | event severity or priority - eventStartTimestamp | Yes | string | | | Time closest to when the measurement was made; with RFC 2822 compliant format: Sat, 13 Mar 2010 11:29:05 -0800 - interfaceName | No | string | | | Physical or logical port or card (if applicable) - networkService | No | string | | | network name - internal ATT field - possibleRootCause | No | string | | | Reserved for future use - thresholdCrossingFieldsVersion | Yes | number | | | version of the thresholdCrossingAlertFields block - -.. _d_b845a2955da4c78bef3ba4d50021a240: - -vNicPerformance Model Structure -------------------------------- - -describes the performance and errors of an identified virtual network -interface card - -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 - - receivedBroadcastPacketsAccumulated | No | number | | | Cumulative count of broadcast packets received as read at the end of the measurement interval - receivedBroadcastPacketsDelta | No | number | | | Count of broadcast packets received within the measurement interval - receivedDiscardedPacketsAccumulated | No | number | | | Cumulative count of discarded packets received as read at the end of the measurement interval - receivedDiscardedPacketsDelta | No | number | | | Count of discarded packets received within the measurement interval - receivedErrorPacketsAccumulated | No | number | | | Cumulative count of error packets received as read at the end of the measurement interval - receivedErrorPacketsDelta | No | number | | | Count of error packets received within the measurement interval - receivedMulticastPacketsAccumulated | No | number | | | Cumulative count of multicast packets received as read at the end of the measurement interval - receivedMulticastPacketsDelta | No | number | | | Count of multicast packets received within the measurement interval - receivedOctetsAccumulated | No | number | | | Cumulative count of octets received as read at the end of the measurement interval - receivedOctetsDelta | No | number | | | Count of octets received within the measurement interval - receivedTotalPacketsAccumulated | No | number | | | Cumulative count of all packets received as read at the end of the measurement interval - receivedTotalPacketsDelta | No | number | | | Count of all packets received within the measurement interval - receivedUnicastPacketsAccumulated | No | number | | | Cumulative count of unicast packets received as read at the end of the measurement interval - receivedUnicastPacketsDelta | No | number | | | Count of unicast packets received within the measurement interval - transmittedBroadcastPacketsAccumulated | No | number | | | Cumulative count of broadcast packets transmitted as read at the end of the measurement interval - transmittedBroadcastPacketsDelta | No | number | | | Count of broadcast packets transmitted within the measurement interval - transmittedDiscardedPacketsAccumulated | No | number | | | Cumulative count of discarded packets transmitted as read at the end of the measurement interval - transmittedDiscardedPacketsDelta | No | number | | | Count of discarded packets transmitted within the measurement interval - transmittedErrorPacketsAccumulated | No | number | | | Cumulative count of error packets transmitted as read at the end of the measurement interval - transmittedErrorPacketsDelta | No | number | | | Count of error packets transmitted within the measurement interval - transmittedMulticastPacketsAccumulated | No | number | | | Cumulative count of multicast packets transmitted as read at the end of the measurement interval - transmittedMulticastPacketsDelta | No | number | | | Count of multicast packets transmitted within the measurement interval - transmittedOctetsAccumulated | No | number | | | Cumulative count of octets transmitted as read at the end of the measurement interval - transmittedOctetsDelta | No | number | | | Count of octets transmitted within the measurement interval - transmittedTotalPacketsAccumulated | No | number | | | Cumulative count of all packets transmitted as read at the end of the measurement interval - transmittedTotalPacketsDelta | No | number | | | Count of all packets transmitted within the measurement interval - transmittedUnicastPacketsAccumulated | No | number | | | Cumulative count of unicast packets transmitted as read at the end of the measurement interval - transmittedUnicastPacketsDelta | No | number | | | Count of unicast packets transmitted within the measurement interval - vNicIdentifier | Yes | string | | | vNic identification - valuesAreSuspect | Yes | string | | {'enum': ['true', 'false']} | Indicates whether vNicPerformance values are likely inaccurate due to counter overflow or other condtions - -.. _d_d694eebbbc0078612d2ba22e0cbf814c: - -vendorVnfNameFields Model Structure ------------------------------------ - -provides vendor, vnf and vfModule identifying information - -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 - - vendorName | Yes | string | | | VNF vendor name - vfModuleName | No | string | | | ASDC vfModuleName for the vfModule generating the event - vnfName | No | string | | | ASDC modelName for the VNF generating the event - -.. _d_9551641bd1c775d9fcf4e45353de8e43: - -voiceQualityFields Model Structure ----------------------------------- - -provides statistics related to customer facing voice products - -.. csv-table:: - :delim: | - :header: "Name", "Required", "Type", "Format", "Properties", "Description" - :widths: 20, 10, 15, 15, 30, 25 +Response Example - additionalInformation | No | array of :ref:`field ` | | | additional voice quality fields if needed - calleeSideCodec | Yes | string | | | callee codec for the call - callerSideCodec | Yes | string | | | caller codec for the call - correlator | Yes | string | | | this is the same for all events on this call - endOfCallVqmSummaries | No | :ref:`endOfCallVqmSummaries ` | | | - midCallRtcp | Yes | string | | | Base64 encoding of the binary RTCP data excluding Eth/IP/UDP headers - phoneNumber | No | string | | | phone number associated with the correlator - vendorVnfNameFields | Yes | :ref:`vendorVnfNameFields ` | | | - voiceQualityFieldsVersion | Yes | number | | | version of the voiceQualityFields block +.. code-block:: http + HTTPS/1.1 202 Accepted + X-MinorVersion: 1 + X-PatchVersion: 1 + X-LatestVersion: 7.1.1 diff --git a/docs/sections/architecture.rst b/docs/sections/architecture.rst index bd97770a..3bc3ceb6 100644 --- a/docs/sections/architecture.rst +++ b/docs/sections/architecture.rst @@ -43,7 +43,6 @@ The following lists the components included in ONAP DCAE . All DCAE components - DCAE Inventory-API: API for DCAE's TOSCA model store. - Platform services - Consul: Distributed service discovery service and KV store. - - PNDA: Platform for Network Data Analytics. - Postgres Database: DCAE's TOSCA model store. - Redis Database: DCAE's transactional state store, used by TCA for supporting persistence and seamless scaling. @@ -60,12 +59,13 @@ The following lists the components included in ONAP DCAE . All DCAE components - Docker based Threshold Crosssing Analytics - Heartbeat Services - SON-Handler Service - - Microservices + - Event processors - PNF Registration Handler - VES Mapper Service - PM-Mapper Service - BBS-EventProcessor Service - PM Subcription Handler + - DataLake Handlers The figure below shows the DCAE architecture and how the components work with each other. The components on the right constitute the Platform/controller components which are statically deployed. The components on the right represent the services which can be both deployed statically or dynamically (via CLAMP) diff --git a/docs/sections/components/blueprint_generator.rst b/docs/sections/components/blueprint_generator.rst index 8813cefd..3a014ea3 100644 --- a/docs/sections/components/blueprint_generator.rst +++ b/docs/sections/components/blueprint_generator.rst @@ -1,6 +1,6 @@ Blueprint Generator (DCAE) -============================================= +========================== What is the Blueprint Generator? ++++++++++++++++++++++++++++++++ @@ -34,7 +34,7 @@ Steps to run the blueprint generator: -o: This flag will create a service component override for your deployment equal to the value you put (optional) 6. An example running this program would look like this: - ``java -jar blueprint-generator-1.2.1-executable.jar -p blueprint_output -i ComponentSpecs/TestComponentSpec.json -n TestAppBlueprint`` + ``java -jar blueprint-generator-1.3.1-executable.jar -p blueprint_output -i ComponentSpecs/TestComponentSpec.json -n TestAppBlueprint`` Extra information diff --git a/docs/sections/components/component-development.rst b/docs/sections/components/component-development.rst index d4b34a74..63c7f389 100644 --- a/docs/sections/components/component-development.rst +++ b/docs/sections/components/component-development.rst @@ -10,11 +10,10 @@ Onboarding Pre-requisite (Service Component) ./intro.rst ./architecture/pieces.rst ./architecture/service-discovery.rst - ./architecture/blueprint_generator.rst + ./blueprint_generator.rst ./requirements-guidelines.rst ./component-specification/component-specification.rst ./component-json-schema.rst ./data-formats.rst ./dcae-cli/dcae-cli-tool.rst - ./glossary.rst - + ./glossary.rst \ No newline at end of file diff --git a/docs/sections/configuration.rst b/docs/sections/configuration.rst index 22e77d18..b62a5406 100644 --- a/docs/sections/configuration.rst +++ b/docs/sections/configuration.rst @@ -6,19 +6,23 @@ Configuration DACEGEN2 platform is deployed via helm charts. The configuration are maintained as on values.yaml and can be updated for deployment if necessary. -The following components are migrated to helm chart part of Dublin release. +For Frankfurt release, the helm charts for each platform component can be controlled via separate override file +https://wiki.onap.org/pages/viewpage.action?pageId=71837415 + + -ConfigBindingService .. csv-table:: :header: "Component", "Charts" :widths: 22,100 - "ConfigBinding Service", "https://git.onap.org/oom/tree/kubernetes/dcaegen2/charts/dcae-config-binding-service" - "Deployment Handler", "https://git.onap.org/oom/tree/kubernetes/dcaegen2/charts/dcae-deployment-handler" - "Policy Handler", "https://git.onap.org/oom/tree/kubernetes/dcaegen2/charts/dcae-policy-handler" - "ServiceChangeHandler", "https://git.onap.org/oom/tree/kubernetes/dcaegen2/charts/dcae-servicechange-handler" - "Invetory", "https://git.onap.org/oom/tree/kubernetes/dcaegen2/charts/dcae-servicechange-handler/charts/dcae-inventory-api" + "Cloudify", "https://git.onap.org/oom/tree/kubernetes/dcaegen2/components/dcae-cloudify-manager" + "ConfigBinding Service", "https://git.onap.org/oom/tree/kubernetes/dcaegen2/components/dcae-config-binding-service" + "Deployment Handler", "https://git.onap.org/oom/tree/kubernetes/dcaegen2/components/dcae-deployment-handler" + "Policy Handler", "https://git.onap.org/oom/tree/kubernetes/dcaegen2/components/dcae-policy-handler" + "ServiceChangeHandler", "https://git.onap.org/oom/tree/kubernetes/dcaegen2/components/dcae-servicechange-handler" + "Inventory", "https://git.onap.org/oom/tree/kubernetes/dcaegen2/components/dcae-inventory-api" + "Dashboard", "https://git.onap.org/oom/tree/kubernetes/dcaegen2/components/dcae-dashboard" @@ -43,32 +47,34 @@ In addition, for DCAE components deployed through Cloudify Manager blueprints, t * The blueprint input files may contain Helm templates, which are resolved into actual deployment time values following the rules for Helm values. -Now we walk through an example, how to configure the Docker image for the DCAE dashboard, which is deployed by Cloudify Manager. +DCAE Service components are deployed via Cloudify Blueprints. Instruction for deployment and configuration are documented under https://docs.onap.org/en/latest/submodules/dcaegen2.git/docs/sections/services/serviceindex.html -In the ``k8s-dashboard.yaml-template`` blueprint template, the Docker image to use is defined as an input parameter with a default value: +Now we walk through an example, how to configure the Docker image for the DCAE VESCollector, which is deployed by Cloudify Manager. -.. code-block:: yaml +In the `k8s-ves.yaml `_ blueprint, the Docker image to use is defined as an input parameter with a default value: - dashboard_docker_image: - description: 'Docker image for dashboard' - default: 'nexus3.onap.org:10001/onap/org.onap.ccsdk.dashboard.ccsdk-app-os:1.1.0-SNAPSHOT-latest' +.. code-block:: yaml -Then in the input file, ``oom/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-dashboard-inputs.yaml``, + tag_version: + type: string + default: "nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:1.5.4" + +The corresponding input file, ``https://git.onap.org/oom/tree/kubernetes/dcaegen2/components/dcae-bootstrap/resources/inputs/k8s-ves-inputs-tls.yaml``, it is defined again as: .. code-block:: yaml + {{ if .Values.componentImages.ves }} + tag_version: {{ include "common.repository" . }}/{{ .Values.componentImages.ves }} + {{ end }} + - dashboard_docker_image: {{ include "common.repository" . }}/{{ .Values.componentImages.dashboard }} - -Thus, when ``common.repository`` and ``componentImages.policy_handler`` are defined in the ``values.yaml`` files, -their values will be plugged in here and the resulting ``policy_handler_image`` value -will be passed to the Policy Handler blueprint as the Docker image tag to use instead of the default value in the blueprint. +Thus, when ``common.repository`` and ``componentImages.ves`` are defined in the ``values.yaml`` files, +their values will be plugged in here and the resulting ``tag_version`` value +will be passed to the blueprint as the Docker image tag to use instead of the default value in the blueprint. -Indeed the ``componentImages.dashboard`` value is provided in the ``oom/kubernetes/dcaegen2/charts/dcae-bootstrap/values.yaml`` file: +The ``componentImages.ves`` value is provided in the ``oom/kubernetes/dcaegen2/charts/dcae-bootstrap/values.yaml`` file: .. code-block:: yaml componentImages: - dashboard: onap/org.onap.ccsdk.dashboard.ccsdk-app-os:1.1.0 - -DCAE Service components are deployed via Cloudify Blueprints. Instruction for deployment and configuration are documented under https://docs.onap.org/en/latest/submodules/dcaegen2.git/docs/sections/services/serviceindex.html + ves: onap/org.onap.dcaegen2.collectors.ves.vescollector:1.5.4 diff --git a/docs/sections/healthcheck.rst b/docs/sections/healthcheck.rst index dea0807b..fa017f00 100644 --- a/docs/sections/healthcheck.rst +++ b/docs/sections/healthcheck.rst @@ -18,8 +18,7 @@ request, the service checks Kubernetes to verify that all of the expected DCAE platform and service components are in a ready state. The service has a fixed list of platform and service components that are normally deployed when DCAE is first installed, including components deployed with Helm charts and -components deployed using Cloudify blueprints. In addition, beginning with -the Dublin release, the healthcheck +components deployed using Cloudify blueprints. In addition, the healthcheck service tracks and checks components that are deployed dynamically using Cloudify blueprints after the initial DCAE installation. diff --git a/docs/sections/images/R6_architecture_diagram.png b/docs/sections/images/R6_architecture_diagram.png index f12d86d263aab44eaa2f28c5b9606bf626be6728..4ebf852e9343a9f93d21d2491e161a82c0e5cdef 100644 GIT binary patch literal 95064 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%0D4d&*mwz2< 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 literal 50093 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 Son-Handler MS Installation <./services/son-handler/installation> RESTconf MS Installation <./services/restconf/installation> + SNMP Trap Collector MS Installation <./services/snmptrap/installation> + PM Subscription Handler MS Installation <./services/pm-subscription-handler/installation> + DataLake Handler Installation <./services/datalake-handler/installation> diff --git a/docs/sections/installation_oom.rst b/docs/sections/installation_oom.rst index bd1b752d..fccefa0b 100644 --- a/docs/sections/installation_oom.rst +++ b/docs/sections/installation_oom.rst @@ -24,7 +24,7 @@ and invokes Kubernetes deployment operations for all the resources. All ONAP Helm charts are organized under the **kubernetes** directory of the **OOM** project, where roughly each ONAP component occupies a subdirectory. DCAE charts are placed under the **dcaegen2** directory. -In Dublin, all DCAE platform components (exception of Dashboard) have corresponding Helm chart which will be used to trigger the deployment. +All DCAE platform components have corresponding Helm chart which will be used to trigger the deployment. All DCAE Services are deployed through Cloudify Blueprint. The default ONAP DCAE deployment includes small subset of DCAE services deployed through Bootstrap pod to meet ONAP Integration usecases. Optionally operators can deploy on-demand other MS required for their usecases as described in `On-demand MS Installation `_. @@ -44,8 +44,8 @@ Following Helm conventions, the DCAE Helm chart directory (``oom/kubernetes/dcae * ``requirements.yaml``: dependency charts. * ``values.yaml``: values for Helm templating engine to expand templates. * ``resources``: subdirectory for additional resource definitions such as configuration, scripts, etc. -* ``templates``: subdirectory for Kubernetes resource definition templates. -* ``charts``: subdirectory for sub-charts. +* ``Makefile``: make file to build DCAE charts +* ``components``: subdirectory for DCAE sub-charts. The dcaegen2 chart has the following sub-charts: @@ -56,6 +56,7 @@ The dcaegen2 chart has the following sub-charts: * ``dcae-healthcheck``: deploys the DCAE healthcheck service that provides an API to check the health of all DCAE components. * ``dcae-policy-handler``: deploys the DCAE policy handler service. * ``dcae-redis``: deploys the DCAE Redis cluster. +* ``dcae-dashboard``: deploys the DCAE Dashboard for managing DCAE microservices deployments * ``dcae-servicechange-handler``: deploys the DCAE service change handler service. A subchart (``dcae-inventory-api``) deploys the DCAE inventory API service. DCAE Deployment @@ -96,9 +97,10 @@ The dcae-bootstrap service has a number of prerequisites because the subsequentl * kube2msb * dcae-config-binding-service * dcae-db + * dcae-mongodb Once started, the DCAE bootstrap service will call Cloudify Manager to deploy -a series of blueprints which specify the additional DCAE R4 components. +a series of blueprints which specify the additional DCAE microservice components. These blueprints use the DCAE Kubernetes plugin (``k8splugin``) to deploy Docker images into the ONAP Kubernetes cluster. For each component, the plugin creates a Kubernetes deployment and other Kubernetes resources (services, volumes, logging sidecar, etc.) @@ -106,10 +108,8 @@ as needed. The DCAE bootstrap service creates the following Kubernetes deployments: -* deploy/dep-dcae-dashboard * deploy/dep-dcae-hv-ves-collector * deploy/dep-dcae-prh -* deploy/dep-dcae-snmptrap-collector * deploy/dep-dcae-tca-analytics * deploy/dep-dcae-ves-collector * deploy/dep-holmes-engine-mgmt @@ -145,35 +145,38 @@ In addition, for DCAE components deployed through Cloudify Manager blueprints, t * The blueprint input files may contain Helm templates, which are resolved into actual deployment time values following the rules for Helm values. -Now we walk through an example, how to configure the Docker image for the DCAE dashboard, which is deployed by Cloudify Manager. +Now we walk through an example, how to configure the Docker image for the DCAE VESCollector, which is deployed by Cloudify Manager. -In the ``k8s-dashboard.yaml-template`` blueprint template, the Docker image to use is defined as an input parameter with a default value: +In the `k8s-ves.yaml `_ blueprint, the Docker image to use is defined as an input parameter with a default value: .. code-block:: yaml - dashboard_docker_image: - description: 'Docker image for dashboard' - default: 'nexus3.onap.org:10001/onap/org.onap.ccsdk.dashboard.ccsdk-app-os:1.1.0-SNAPSHOT-latest' - -Then in the input file, ``oom/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-dashboard-inputs.yaml``, + tag_version: + type: string + default: "nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:1.5.4" + +The corresponding input file, ``https://git.onap.org/oom/tree/kubernetes/dcaegen2/components/dcae-bootstrap/resources/inputs/k8s-ves-inputs-tls.yaml``, it is defined again as: .. code-block:: yaml + {{ if .Values.componentImages.ves }} + tag_version: {{ include "common.repository" . }}/{{ .Values.componentImages.ves }} + {{ end }} + - dashboard_docker_image: {{ include "common.repository" . }}/{{ .Values.componentImages.dashboard }} - -Thus, when ``common.repository`` and ``componentImages.policy_handler`` are defined in the ``values.yaml`` files, -their values will be plugged in here and the resulting ``policy_handler_image`` value -will be passed to the Policy Handler blueprint as the Docker image tag to use instead of the default value in the blueprint. +Thus, when ``common.repository`` and ``componentImages.ves`` are defined in the ``values.yaml`` files, +their values will be plugged in here and the resulting ``tag_version`` value +will be passed to the blueprint as the Docker image tag to use instead of the default value in the blueprint. -Indeed the ``componentImages.dashboard`` value is provided in the ``oom/kubernetes/dcaegen2/charts/dcae-bootstrap/values.yaml`` file: +The ``componentImages.ves`` value is provided in the ``oom/kubernetes/dcaegen2/charts/dcae-bootstrap/values.yaml`` file: .. code-block:: yaml componentImages: - dashboard: onap/org.onap.ccsdk.dashboard.ccsdk-app-os:1.1.0 + ves: onap/org.onap.dcaegen2.collectors.ves.vescollector:1.5.4 + -The final result is that when DCAE bootstrap calls Cloudify Manager to deploy the DCAE dashboard, the 1.1.0 image will be deployed. +The final result is that when DCAE bootstrap calls Cloudify Manager to deploy the DCAE VES collector, the 1.5.4 image will be deployed. DCAE Service Endpoints ---------------------- @@ -182,18 +185,18 @@ Below is a table of default hostnames and ports for DCAE component service endpo ================== ================================= ====================================================== Component Cluster Internal (host:port) Cluster external (svc_name:port) ================== ================================= ====================================================== - VES dcae-ves-collector:8080 xdcae-ves-collector.onap:30235 + VES dcae-ves-collector:8443 xdcae-ves-collector.onap:30417 HV-VES dcae-hv-ves-collector:6061 xdcae-hv-ves-collector.onap:30222 TCA dcae-tca-analytics:11011 xdcae-tca-analytics.onap:32010 + TCA-Gen2 dcae-tcagen2:9091 NA PRH dcae-prh:8100 NA - SNMPTrap dcae-snmptrap-collector:6162/udp xdcae-snmptrap-collector:30470/UDP Policy Handler policy-handler:25577 NA Deployment Handler deployment-handler:8443 NA Inventory inventory:8080 NA - Config binding config-binding-service:10000 config-binding-servicee:30415 + Config binding config-binding-service:10000/10001 config-binding-service:30415 DCAE Healthcheck dcae-healthcheck:80 NA Cloudify Manager dcae-cloudify-manager:80 NA - DCAE Dashboard dcae-dashboard:8080/8443 xdcae-dashboard:30418/30419 + DCAE Dashboard dcae-dashboard:8443 xdcae-dashboard:30419 ================== ================================= ====================================================== In addition, a number of ONAP service endpoints that are used by DCAE components are listed as follows diff --git a/docs/sections/release-notes.rst b/docs/sections/release-notes.rst index 4322199c..849cd7b7 100644 --- a/docs/sections/release-notes.rst +++ b/docs/sections/release-notes.rst @@ -3,16 +3,20 @@ .. Copyright (c) 2017-2020 AT&T Intellectual Property. All rights reserved. .. _release_notes: -Release Notes -============= +DCAE Release Notes +================== + +Abstract +-------- +This document provides the release notes for the Frankfurt release (6.0.0) -Version: 6.0.0 --------------- +Summary +------- **New Features** -DCAE R6 improves upon previous release with the following new features: +DCAE improves upon previous release with the following new features: - DCAE Platform Enhancement - Introduction of Microservice and Onboarding Design (MOD) platform @@ -81,6 +85,7 @@ Under OOM (Kubernetes) deployment all DCAE component containers are deployed as **Known Issues** * Blueprint generator issue (DCAEGEN2-2140) + * TCAgen2 Policy configuration support (DCAEGEN2-2198) **Security Notes** @@ -92,6 +97,7 @@ Under OOM (Kubernetes) deployment all DCAE component containers are deployed as * In default deployment DCAEGEN2 (xdcae-dashboard) exposes HTTP port 30418 outside of cluster. [`OJSI-159 `_] * In default deployment DCAEGEN2 (dcae-redis) exposes redis port 30286 outside of cluster. [`OJSI-187 `_] * In default deployment DCAEGEN2 (config-binding-service) exposes HTTP port 30415 outside of cluster. [`OJSI-195 `_] + *Known Security Issues* @@ -104,10 +110,6 @@ Under OOM (Kubernetes) deployment all DCAE component containers are deployed as DCAE code has been formally scanned during build time using NexusIQ and all Critical vulnerabilities have been addressed, items that remain open have been assessed for risk and determined to be false positive. The DCAE open Critical security vulnerabilities and their risk assessment have been documented as part of the `project `_. -Quick Links: - - `DCAE project page `_ - - - `Passing Badge information for DCAE `_ Artifacts released: @@ -156,7 +158,15 @@ Artifacts released: "dcaegen2/services/sdk", "", "DCAE SDK 1.3.5 (jar)" "ccsdk/dashboard", "", "onap/org.onap.ccsdk.dashboard.ccsdk-app-os:1.3.2" +**Test Results** + + - `DCAE Pairwise Test `_ + - `DCAE MOD Test `_ + +**References** + - `DCAE project page `_ + - `Passing Badge information for DCAE `_ Version: 5.0.1 -------------- diff --git a/docs/sections/sdk/architecture.rst b/docs/sections/sdk/architecture.rst index 3f3cdf55..7cf70267 100644 --- a/docs/sections/sdk/architecture.rst +++ b/docs/sections/sdk/architecture.rst @@ -8,7 +8,7 @@ Introduction ------------ As most services and collectors deployed on DCAE platform relies on similar microservices a common Software Development Kit has been created. It contains utilities and clients which may be used for getting configuration from CBS, consuming messages from DMaaP, interacting with A&AI, etc. SDK is written in Java. -Some of common function across different services are targeted to build as separate library was created in Dublin release. +Some of common function across different services are targeted to build as separate library. Reactive programming -------------------- diff --git a/docs/sections/sdk/index.rst b/docs/sections/sdk/index.rst index c5d27a2d..86a9d99b 100644 --- a/docs/sections/sdk/index.rst +++ b/docs/sections/sdk/index.rst @@ -4,7 +4,7 @@ DCAE SDK ======== -With Dublin release, DCAE has introduced new SDK's to aid component development. **SDK** is a common software development kit written in Java. It contains various utilities and clients which may be used for getting configuration from CBS, consuming messages from DMaaP, interacting with A&AI, etc. +Since Dublin release, DCAE has introduced new SDK's to aid component development. **SDK** is a common software development kit written in Java. It contains various utilities and clients which may be used for getting configuration from CBS, consuming messages from DMaaP, interacting with A&AI, etc. SDK Overview diff --git a/docs/sections/services/dfc/installation.rst b/docs/sections/services/dfc/installation.rst index 6f1c91e1..cd546754 100644 --- a/docs/sections/services/dfc/installation.rst +++ b/docs/sections/services/dfc/installation.rst @@ -57,10 +57,10 @@ subscribes to DMAAP/MR fileReady event as JSON messages and publishes the downlo Installation ^^^^^^^^^^^^ -The following command will download the Dublin version of the datafile image from +The following command will download the Frankfurt version of the datafile image from nexus and launch it in the container named "datafile": - ``docker run -d -p 8100:8100 -p 8433:8433 nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server:1.2.3`` + ``docker run -d -p 8100:8100 -p 8433:8433 nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server:1.3.0`` For another version, it is possible to replace the tag '1.2.3' with any version that seems suitable (including latest). Available images are visible following this `link`_. diff --git a/docs/sections/services/heartbeat-ms/installation.rst b/docs/sections/services/heartbeat-ms/installation.rst index df50dfb1..b8aef18a 100644 --- a/docs/sections/services/heartbeat-ms/installation.rst +++ b/docs/sections/services/heartbeat-ms/installation.rst @@ -6,26 +6,27 @@ Following are steps if manual deployment/undeployment required. Steps to deploy are shown below -- Transfer blueprint component file in DCAE bootstrap POD under /blueprints directory. Heartbeat Blueprint can be found under https://git.onap.org/dcaegen2/services/heartbeat/tree/dpo/k8s-heartbeat.yaml?h=dublin - -- Transfer blueprint inputs file in DCAE bootstrap POD under /inputs directory. Sample input file can be found under https://git.onap.org/dcaegen2/services/heartbeat/tree/dpo/k8s-heartbeat-inputs.yaml +- Heartbeat MS blueprint is available under bootstrap pod (under /blueprints/k8s-heartbeat.yaml). The blueprint is also maintained in gerrit and can be downloaded from https://git.onap.org/dcaegen2/platform/blueprints/tree/blueprints/k8s-heartbeat.yaml + + +- Create an input file in DCAE bootstrap POD under / directory. Sample input file can be found under https://git.onap.org/dcaegen2/services/heartbeat/tree/dpo/k8s-heartbeat-inputs.yaml - Enter the Bootstrap POD - Validate blueprint .. code-block:: bash - cfy blueprints validate /blueprints/k8s-hearttbeat.yaml + cfy blueprints validate /blueprints/k8s-heartbeat.yaml - Upload validated blueprint .. code-block:: bash - cfy blueprints upload -b heartbeat /blueprints/k8s-hearttbeat.yaml + cfy blueprints upload -b heartbeat /blueprints/k8s-heartbeat.yaml - Create deployment .. code-block:: bash - cfy deployments create -b heartbeat -i /k8s-hearttbeat-input.yaml heartbeat + cfy deployments create -b heartbeat -i /k8s-heartbeat-input.yaml heartbeat - Deploy blueprint .. code-block:: bash diff --git a/docs/sections/services/mapper/troubleshooting.rst b/docs/sections/services/mapper/troubleshooting.rst index 196faa0d..5d524e5c 100644 --- a/docs/sections/services/mapper/troubleshooting.rst +++ b/docs/sections/services/mapper/troubleshooting.rst @@ -1,7 +1,6 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 -.. _troubleshooting: Troubleshooting =============== diff --git a/docs/sections/services/pm-mapper/installation.rst b/docs/sections/services/pm-mapper/installation.rst index ad96e5d2..432a2e34 100644 --- a/docs/sections/services/pm-mapper/installation.rst +++ b/docs/sections/services/pm-mapper/installation.rst @@ -36,7 +36,7 @@ Enter the Cloudify Manager kuberenetes pod :delim: ; :header: Property , Sample Value , Description , Required - client_id ; dcae@dcae.onap.org ; In the Dublin release information about the AAF user must be provided to enable publishing to authenticated topics. ; Yes + client_id ; dcae@dcae.onap.org ; Information about the AAF user must be provided to enable publishing to authenticated topics. ; Yes client_password ; ; This is the password for the given user e.g. The is dcae@dcae.onap.org's password. ; Yes enable_http ; true ; By default, the PM-Mapper will only allow inbound queries over HTTPS. However, it is possible to configure it to enable HTTP also. ; No tag_version ; nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.pm-mapper:1.0.1 ; The tag of the Docker image will be used when deploying the PM-Mapper. ; No diff --git a/docs/sections/services/pm-mapper/troubleshooting.rst b/docs/sections/services/pm-mapper/troubleshooting.rst index c025fb0c..add7b7ae 100644 --- a/docs/sections/services/pm-mapper/troubleshooting.rst +++ b/docs/sections/services/pm-mapper/troubleshooting.rst @@ -1,7 +1,6 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 -.. _troubleshooting: Troubleshooting =============== diff --git a/docs/sections/services/pm-subscription-handler/troubleshooting.rst b/docs/sections/services/pm-subscription-handler/troubleshooting.rst index 07787c41..d5238026 100644 --- a/docs/sections/services/pm-subscription-handler/troubleshooting.rst +++ b/docs/sections/services/pm-subscription-handler/troubleshooting.rst @@ -1,7 +1,6 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 -.. _Troubleshooting: Troubleshooting =============== diff --git a/docs/sections/services/restconf/installation.rst b/docs/sections/services/restconf/installation.rst index d475ef7a..e38cf6be 100644 --- a/docs/sections/services/restconf/installation.rst +++ b/docs/sections/services/restconf/installation.rst @@ -6,7 +6,7 @@ Standalone docker run command docker run onap/org.onap.dcaegen2.collectors.restconfcollector -For Dublin release, RESTConf collector will be a DCAE component that can dynamically be deployed via Cloudify blueprint installation. +For the current release, RESTConf collector will be a DCAE component that can dynamically be deployed via Cloudify blueprint installation. Steps to deploy are shown below @@ -14,17 +14,17 @@ Steps to deploy are shown below - Enter the Bootstrap POD using kubectl - Transfer blueprint component file in DCAE bootstrap POD under /blueprints directory. Blueprint can be found in - https://git.onap.org/dcaegen2/collectors/restconf/tree/dpo/blueprints/k8s-rcc-policy.yaml-template?h=dublin + https://git.onap.org/dcaegen2/platform/blueprints/tree/blueprints/k8s-restconf.yaml - Validate blueprint .. code-block:: bash - cfy blueprints validate /blueprints/k8s-rcc-policy.yaml + cfy blueprints validate /blueprints/k8s-restconf.yaml - Upload validated blueprint .. code-block:: bash - cfy blueprints upload -b restconfcollector /blueprints/k8s-rcc-policy.yaml + cfy blueprints upload -b restconfcollector /blueprints/k8s-restconf.yaml - Create deployment .. code-block:: bash diff --git a/docs/sections/services/serviceindex.rst b/docs/sections/services/serviceindex.rst index e7faca4a..aa29f06e 100644 --- a/docs/sections/services/serviceindex.rst +++ b/docs/sections/services/serviceindex.rst @@ -22,4 +22,5 @@ DCAE Service components ./bbs-event-processor/index.rst ./son-handler/index.rst ./restconf/index.rst - ./tca-cdap/index.rst \ No newline at end of file + ./tca-cdap/index.rst + ./tcagen2-docker/index.rst \ No newline at end of file diff --git a/docs/sections/services/son-handler/son_handler_overview.rst b/docs/sections/services/son-handler/son_handler_overview.rst index 62dc12a8..767d923d 100644 --- a/docs/sections/services/son-handler/son_handler_overview.rst +++ b/docs/sections/services/son-handler/son_handler_overview.rst @@ -60,9 +60,9 @@ This is responsible for registering with the DMaaP client for the DMaaP notifica Deployment aspects ------------------ -The SON-Handler MS will be deployed on DCAE using the mechanism described in "Option 3 - On-Demand deployment through DCAE-Controller cli" at https://wiki.onap.org/display/DW/Dublin+Deployment+Strategy.Details of the installation steps are available at ./installation.rst. Further details can be obtained from https://wiki.onap.org/pages/viewpage.action?pageId=76875778. +The SON-Handler MS will be deployed on DCAE as an on-demand component. Details of the installation steps are available at ./installation.rst. Further details can be obtained from https://wiki.onap.org/pages/viewpage.action?pageId=76875778 Known Issues and Resolutions ---------------------------- -The scope and scenarios addressed are documented in the SON use case page for Dublin - https://wiki.onap.org/display/DW/OOF-PCI+Use+Case+-+Dublin+Release+-+ONAP+based+SON+for+PCI+and+ANR. +The scope and scenarios addressed are documented in the SON use case page - https://wiki.onap.org/display/DW/OOF-PCI+Use+Case+-+Dublin+Release+-+ONAP+based+SON+for+PCI+and+ANR. The enhancements and limitations in Frankfurt release are documented in the SON use case page for Frankfurt - https://wiki.onap.org/display/DW/OOF+%28SON%29+in+R5+El+Alto%2C+OOF+%28SON%29+in+R6+Frankfurt. diff --git a/docs/sections/services/tcagen2-docker/installation.rst b/docs/sections/services/tcagen2-docker/installation.rst index 7fa53e29..792f8a48 100644 --- a/docs/sections/services/tcagen2-docker/installation.rst +++ b/docs/sections/services/tcagen2-docker/installation.rst @@ -21,14 +21,13 @@ Enter the Cloudify Manager kuberenetes pod - Tca-gen2 blueprint directory (/blueprints/k8s-tcagen2.yaml). The blueprint is also maintained in gerrit and can be downloaded from https://git.onap.org/dcaegen2/platform/blueprints/tree/blueprints/k8s-tcagen2.yaml - - Create input file required for deployment + - Create input file required for deployment Configuration of the service consists of generating an inputs file (YAML) which will be used as part of the Cloudify install. The tca-gen2 blueprints was designed with known defaults for the majority of the fields. Below you will find examples of fields which can be configured, and some of the fields - which must be configured. The full list of configurable parameters can be seen within the bootstrap container under - /inputs/k8s-tcagen2-inputs.yaml + which must be configured. An input file is loaded into bootstrap container (/inputs/k8s-tcagen2-inputs.yaml). .. csv-table:: @@ -52,7 +51,7 @@ Enter the Cloudify Manager kuberenetes pod .. code-block:: bash - cfy install --blueprint-id tca-gen2 --deployment-id tca-gen2 -i k8s-tcagen2-inputs.yaml /blueprints/k8s-tcagen2.yaml + cfy install --blueprint-id tcagen2 --deployment-id tcagen2 -i /inputs/k8s-tcagen2-inputs.yaml /blueprints/k8s-tcagen2.yaml @@ -61,9 +60,9 @@ To undeploy TCA-gen2, steps are shown below - Uninstall running TCA-gen2 and delete deployment .. code-block:: bash - cfy uninstall tca-gen2 + cfy uninstall tcagen2 - Delete blueprint .. code-block:: bash - cfy blueprints delete tca-gen2 + cfy blueprints delete tcagen2 \ No newline at end of file diff --git a/docs/sections/services/ves-http/VES-processingFlow.png b/docs/sections/services/ves-http/VES-processingFlow.png index 4c53a2e9e796a579c6d2b20d3289f015094c7f02..2c7659378903e183407108dbf8a4ca55c0098622 100644 GIT binary patch literal 44229 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 literal 154731 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⁡Q+?hgWc%T?O79Uh|hKABD*ySMZ`b9M;~s7Nb&+MxH5ZUOe))*>CVcm z2l6ka?fhINg%ibNYyh$c@_RI0TwEZav-X+D-?oIipJCE&hCsheW|%({5;6Q&{h5C+ z(Bky+wg-UyWP!OZz%0+bY=a916rBigU%X%v^4`CkG;Hgn-TKqWY1RRIN-%xXY1{qs zN{oXuls?gI1eX?I5DC7I%(!B`y~rPH!#iqT-3flMp{tIzel}NptU@0O`+7H4gHN|w zo2BBuhJaw8A}=MbF^6P?6&6YxpL9{oE+8~5=m!Zx06e4yq)vhQH+wK(^zWIAaH=+_ zE4wf);q+!75EA)_mpd7&OU&`P0hnXw=8iOQwoC zHoW|9ko|m%js!n27uPO9l(fa!BHH_!+@-(ZEwTs0KDidPm$tAe31H-!>7iT!G_sDs zBn2e9ItBR$KxMq3Kic{-b=)t|MBB*Y+F#nGIQPTv4xrHnWxHiyTS#SjFs9cLvz#Lu z&Z;jle^F&QdYtSGYjtMs?H8g-B>U;S^xs$@p$)YkC_dxD*|AYV&I!Qe{`xz)hr0`E z;{=x6kP$z3u<5ZdP?iowxZ2F@=RnB_n&pH*wIOU+ zUJa!+_*mSepGA=0cmU~zVyx;({#ckh!{WWWfY8fA)JhadrhOckOTnO?v&QL*l|?7; zPT>pl-YRtj>8+=saS=z_CtS&#b!tC?4ap8j&R^goV*lN(&gRCk6&~)I!H7oqd}s=t z+%tD>lPcd{y{_s8^4+Ewy~b&YYN4IS1~Wbl`rS^$dW^|}aQ(Y64zF9qzZs&dD-`rt z59?GkxoYextOfqmP5X4XQq5stEd*P&&d#hn)Gd@LW)s(7#~gSLlKGfqVtY(DE3>%( z-P0h$Ru+%G7$m$e67w{gCFpo-jirf-w^HmjV|d4v%pIym2)ST9fmZLd&*h*K{L)N zNiW!Ci_6RqvN9_#Sk>v>uJgq>8^EqS#E6i|m4hv^E+Ho6*z$slq<3D#WI;IqL--k? z_w`r$fnr6&aNLtH=2h@e*M|j7KM$!Dcn~ldLt>Wd?)P@8O)Ar8T0qMhZJRHENEguZ zY+j*pue_T|&p(Q5^#-)Qz9{hKbgv%)7IF+jyp*LZ2X08lDJ@WS5P!7`gr4NzxT|&2 z#3rlSJR~0x8+W)!>P0&z@3dWQ9U<7^z63HavEd%op|4~TGK?xk$IO9o()_xg>gbzT z-?LYYoKN-9coJCNplB$+c=b)hUaTE6kQ2y?pgq$vrZ9{N4&0P6Pc^Bdo!YYa<{7cN z`OdL@zE&}ItXMt#@F!8ik<9xWJw==)T3MOciA!Dkvoe@K|i`I&aT1tO&QHmATw z;@OUkm(^f(fl#18#kl>cP&KQBAUzaRl9a%+2NsYQ3?51<(v_%ivc(36eJJrKmuUmB zCISB25>pWFN4-38ds#tF2hv@Ig6MIBs>NohELwZH0oD4mAC8vvF`X6Bu4hxiLy-jE zoRkrJ+1Lgl_KgyKj} zffE#{@(fJLHMJZKt>$eb2tbc0u;Cah53Zq@ti+5YBPS%_@((meQGvzeK6qoNnX;1p zRb1aLY0qov>LDOb$ zxm5WgV&k<%-`MXiexYQKnz<95{0ml3eBKBk7vmYBc*qis zd2}b(YamV&b&xx2_$Jp$ZibWz_+QnREL4v3X+dw)%uG6-n?gNeQ00+9K|PkZ{Blk$~R4Q5h|x*+LI(3wCZ z&j+;`oeFCPga}H)h*to(5pfIrLh4YPG$>$!Od`y|QCVIdtLg06E@K5hh2Oc_CTe`d zj(2COwk<^EK)X(I`vQAFx^*0{C>Spe&A{y{j^3DmE6|EPb>g2~rPO1};wVQ~1>|

?Q7?tg@+HhC$mYO^;d6W@F6Uv6Z# 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 +VES 4.1 eventListener/v4 `CommonEventFormat_27.2.json `_ +VES 5.4 eventListener/v5 `CommonEventFormat_28.4.1.json `_ +VES 7.1.1 eventListener/v7 `CommonEventFormat_30.1.1.json `_ =========== ================ ================================== - -Schema definition files are contained within VES collector gerrit repo - https://git.onap.org/dcaegen2/collectors/ves/tree/etc + Features Supported @@ -53,8 +60,8 @@ Dynamic configuration fed into Collector via DCAEPlatform POST requests result in standard HTTP status codes: -200-299 Success -400-499 Client request has a problem (data error) -500-599 Collector service has a problem +- 200-299 Success +- 400-499 Client request has a problem (data error) +- 500-599 Collector service has a problem diff --git a/docs/sections/services/ves-http/configuration.rst b/docs/sections/services/ves-http/configuration.rst index eaadf277..7cf9831f 100644 --- a/docs/sections/services/ves-http/configuration.rst +++ b/docs/sections/services/ves-http/configuration.rst @@ -12,10 +12,10 @@ VES expects to be able to fetch configuration directly from consul service in fo "collector.dynamic.config.update.frequency": "5", "event.transform.flag": "0", "collector.schema.checkflag": "1", - "collector.dmaap.streamid": "fault=ves-fault|syslog=ves-syslog|heartbeat=ves-heartbeat|measurementsForVfScaling=ves-measurement|mobileFlow=ves-mobileflow|other=ves-other|stateChange=ves-statechange|thresholdCrossingAlert=ves-thresholdCrossingAlert|voiceQuality=ves-voicequality|sipSignaling=ves-sipsignaling|notification=ves-notification|pnfRegistration=ves-pnfRegistration", + "collector.dmaap.streamid": "fault=ves-fault|syslog=ves-syslog|heartbeat=ves-heartbeat|measurementsForVfScaling=ves-measurement|measurement=ves-measurement|mobileFlow=ves-mobileflow|other=ves-other|stateChange=ves-statechange|thresholdCrossingAlert=ves-thresholdCrossingAlert|voiceQuality=ves-voicequality|sipSignaling=ves-sipsignaling|notification=ves-notification|pnfRegistration=ves-pnfRegistration", "collector.service.port": "8080", - "collector.schema.file": "{\"v1\":\"./etc/CommonEventFormat_27.2.json\",\"v2\":\"./etc/CommonEventFormat_27.2.json\",\"v3\":\"./etc/CommonEventFormat_27.2.json\",\"v4\":\"./etc/CommonEventFormat_27.2.json\",\"v5\":\"./etc/CommonEventFormat_28.4.1.json\",\"v7\":\"./etc/CommonEventFormat_30.0.1.json\"}", - "collector.keystore.passwordfile": "/opt/app/VESCollector/etc/passwordfile", + "collector.service.secure.port": "8443", + "collector.schema.file": "{\"v1\":\"./etc/CommonEventFormat_27.2.json\",\"v2\":\"./etc/CommonEventFormat_27.2.json\",\"v3\":\"./etc/CommonEventFormat_27.2.json\",\"v4\":\"./etc/CommonEventFormat_27.2.json\",\"v5\":\"./etc/CommonEventFormat_28.4.1.json\",\"v7\":\"./etc/CommonEventFormat_30.1.1.json\"}", "streams_publishes": { "ves-measurement": { "type": "message_router", @@ -55,9 +55,12 @@ VES expects to be able to fetch configuration directly from consul service in fo } }, "collector.service.secure.port": "8443", - "auth.method": "noAuth", - "collector.keystore.file.location": "/opt/app/VESCollector/etc/keystore", - "header.authlist": "sample1,$2a$10$0buh.2WeYwN868YMwnNNEuNEAMNYVU9.FSMJGyIKV3dGET/7oGOi6" + "auth.method": "certBasicAuth", + "collector.keystore.file.location": "/opt/app/dcae-certificate/cert.jks", + "collector.keystore.passwordfile": "/opt/app/dcae-certificate/jks.pass", + "collector.truststore.file.location": "/opt/app/dcae-certificate/trust.jks", + "collector.truststore.passwordfile": "/opt/app/dcae-certificate/trust.pass", + "header.authlist": "sample1,$2a$10$0buh.2WeYwN868YMwnNNEuNEAMNYVU9.FSMJGyIKV3dGET/7oGOi6|demouser,$2a$10$1cc.COcqV/d3iT2N7BjPG.S6ZKv2jpb9a5MV.o7lMih/GpjJRX.Ce" } diff --git a/docs/sections/services/ves-http/installation.rst b/docs/sections/services/ves-http/installation.rst index 0e399301..b21ca919 100644 --- a/docs/sections/services/ves-http/installation.rst +++ b/docs/sections/services/ves-http/installation.rst @@ -36,198 +36,35 @@ VES Collector support following authentication types * *auth.method=noAuth* default option - no security (http) * *auth.method=certBasicAuth* is used to enable mutual TLS authentication or/and basic HTTPs authentication -Default ONAP deployed VESCOllector is configured for "noAuth". If VESCollector instance need to be deployed with authentication enabled, follow below setup +The blueprint is same for both deployments - based on the input configuration, VESCollector can be set for required authentication type. +Default ONAP deployed VESCollector is configured for "certBasicAuth". +If VESCollector instance need to be deployed with authentication disabled, follow below setup -- Update existing VESCollector deployment to remove nodeport conflict by editing service definition - .. code-block:: bash - - kubectl edit svc -n onap xdcae-ves-collector - -and remove following entry and save the changes; K8S will update the service definition default VES instance - - .. code-block:: bash - - - name: xport-t-8443 - nodePort: 30417 - port: 8443 - protocol: TCP - targetPort: 8443 - Execute into Bootstrap POD using kubectl command -- Copy blueprint content into DCAE bootstrap POD under /blueprints directory under same file name. - -``k8s-ves-tls.yaml`` --------------------- - - -:: - - # ============LICENSE_START==================================================== - # ============================================================================= - # Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - # ============================================================================= - # Licensed under the Apache License, Version 2.0 (the "License"); - # you may not use this file except in compliance with the License. - # You may obtain a copy of the License at - # - # http://www.apache.org/licenses/LICENSE-2.0 - # - # Unless required by applicable law or agreed to in writing, software - # distributed under the License is distributed on an "AS IS" BASIS, - # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - # See the License for the specific language governing permissions and - # limitations under the License. - # ============LICENSE_END====================================================== - - tosca_definitions_version: cloudify_dsl_1_3 - - imports: - - "http://www.getcloudify.org/spec/cloudify/3.4/types.yaml" - - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/k8splugin/1.4.13/k8splugin_types.yaml - - inputs: - ves_other_publish_url: - type: string - default: "http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.SEC_OTHER_OUTPUT" - ves_heartbeat_publish_url: - type: string - default: "http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.SEC_HEARTBEAT_OUTPUT" - ves_fault_publish_url: - type: string - default: "http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.SEC_FAULT_OUTPUT" - ves_measurement_publish_url: - type: string - default: "http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.VES_MEASUREMENT_OUTPUT" - ves_notification_publish_url: - type: string - default: "http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.VES_NOTIFICATION_OUTPUT" - ves_pnfRegistration_publish_url: - type: string - default: "http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.VES_PNFREG_OUTPUT" - tag_version: - type: string - default: "nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:1.4.5" - external_port: - type: string - description: Kubernetes node port on which collector is exposed - default: "30235" - external_tls_port: - type: string - description: Kubernetes node port on which collector is exposed for https - default: "30417" - replicas: - type: integer - description: number of instances - default: 1 - node_templates: - ves: - interfaces: - cloudify.interfaces.lifecycle: - start: - inputs: - ports: - - concat: ["8443:", { get_input: external_tls_port }] - properties: - application_config: - collector.dmaap.streamid: fault=ves-fault|syslog=ves-syslog|heartbeat=ves-heartbeat|measurementsForVfScaling=ves-measurement|measurement=ves-measurement|mobileFlow=ves-mobileflow|other=ves-other|stateChange=ves-statechange|thresholdCrossingAlert=ves-thresholdCrossingAlert|voiceQuality=ves-voicequality|sipSignaling=ves-sipsignaling|notification=ves-notification|pnfRegistration=ves-pnfRegistration - collector.keystore.file.location: /opt/app/VESCollector/etc/keystore - collector.keystore.passwordfile: /opt/app/VESCollector/etc/passwordfile - collector.schema.checkflag: "1" - collector.schema.file: "{\"v1\":\"./etc/CommonEventFormat_27.2.json\",\"v2\":\"./etc/CommonEventFormat_27.2.json\",\"v3\":\"./etc/CommonEventFormat_27.2.json\",\"v4\":\"./etc/CommonEventFormat_27.2.json\",\"v5\":\"./etc/CommonEventFormat_28.4.1.json\",\"v7\":\"./etc/CommonEventFormat_30.0.1.json\"}" - collector.service.port: "8080" - collector.service.secure.port: "8443" - event.transform.flag: "0" - auth.method: certBasicAuth - header.authlist: "sample1,$2a$10$0buh.2WeYwN868YMwnNNEuNEAMNYVU9.FSMJGyIKV3dGET/7oGOi6" - streams_publishes: - ves-fault: - dmaap_info: - topic_url: - get_input: ves_fault_publish_url - type: message_router - ves-measurement: - dmaap_info: - topic_url: - get_input: ves_measurement_publish_url - type: message_router - ves-notification: - dmaap_info: - topic_url: - get_input: ves_notification_publish_url - type: message_router - ves-pnfRegistration: - dmaap_info: - topic_url: - get_input: ves_pnfRegistration_publish_url - type: message_router - ves-heartbeat: - dmaap_info: - topic_url: - get_input: ves_heartbeat_publish_url - type: message_router - ves-other: - dmaap_info: - topic_url: - get_input: ves_other_publish_url - type: message_router - collector.dynamic.config.update.frequency: "5" - #docker_config: - # healthcheck: - # endpoint: /healthcheck - # interval: 15s - # timeout: 1s - # type: https - image: - get_input: tag_version - replicas: {get_input: replicas} - name: 'dcae-ves-collector-tls' - dns_name: 'dcae-ves-collector-tls' - log_info: - log_directory: "/opt/app/VESCollector/logs/ecomp" - type: dcae.nodes.ContainerizedPlatformComponent - - - -- Validate blueprint - .. code-block:: bash - - cfy blueprints validate /blueprints/k8s-ves-tls.yaml +- VES blueprint is available under /blueprints directory ``k8s-ves-tls.yaml``. A corresponding input files is also pre-loaded into bootstrap +pod under /inputs/k8s-ves-inputs.yaml - Deploy blueprint .. code-block:: bash - cfy install -b ves-tls -d ves-tls /blueprints/k8s-ves-tls.yaml + cfy install -b ves-http -d ves-http -i /inputs/k8s-ves-inputs.yaml /blueprints/k8s-ves-tls.yaml -To undeploy ves-tls, steps are noted below +To undeploy ves-http, steps are noted below -- Uninstall running ves-tls and delete deployment +- Uninstall running ves-http and delete deployment .. code-block:: bash - cfy uninstall ves-tls + cfy uninstall ves-http The deployment uninstall will also delete the blueprint. In some case you might notice 400 error reported indicating active deployment exist such as below -** An error occurred on the server: 400: Can't delete blueprint ves-tls - There exist deployments for this blueprint; Deployments ids: ves-tls** +** An error occurred on the server: 400: Can't delete blueprint ves-http - There exist deployments for this blueprint; Deployments ids: ves-http** In this case blueprint can be deleted explicitly using this command. .. code-block:: bash - cfy blueprint delete ves-tls - -Known Issue : When VESCollector is required to be deployed with authentication enabled *auth.method: certBasicAuth* -the blueprint currently disables healthcheck parameters configuration (below). This causes no readiness probe to be deployed in K8S when VES Collector is deployed with authentication enabled. - - - .. code-block:: bash - - docker_config: - healthcheck: - endpoint: /healthcheck - interval: 15s - timeout: 1s - type: https - + cfy blueprint delete ves-http -The healthcheck support when VESauthentication is enabled needs a different solution to be worked. This will be worked as future enhancement (DCAEGEN2-1594) diff --git a/docs/sections/services/ves-hv/troubleshooting.rst b/docs/sections/services/ves-hv/troubleshooting.rst index 15ce44c3..ebb80d9c 100644 --- a/docs/sections/services/ves-hv/troubleshooting.rst +++ b/docs/sections/services/ves-hv/troubleshooting.rst @@ -1,7 +1,6 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 -.. _troubleshooting: Troubleshooting =============== -- 2.16.6