From 0424f6f58b83ced065a0f49fdafa3e50bff18f1e Mon Sep 17 00:00:00 2001 From: PANCHAL Date: Fri, 27 Mar 2020 19:28:03 -0400 Subject: Add updated DCAE MOD documentation Issue-ID: DCAEGEN2-1865 Signed-off-by: PANCHAL Change-Id: Iaec5bd3fedc4329ffc21f32c4ea3f65bf41ffb06 Signed-off-by: PANCHAL --- docs/index.rst | 3 +- docs/sections/DCAE-MOD/DCAE-MOD-Architecture.rst | 173 ++ docs/sections/DCAE-MOD/DCAE-MOD-Intro.rst | 45 + docs/sections/DCAE-MOD/DCAE-MOD-User-Guide.rst | 441 ++++ docs/sections/DCAE-MOD/Glossary.rst | 184 ++ docs/sections/DCAE-MOD/Roles.rst | 168 ++ .../Request-body-of-Sample-Component.json | 328 +++ .../Request-body-of-Sample-Data-Format.json | 2124 ++++++++++++++++++++ .../Sample-Input-Files/tca-deploy.input.json | 21 + .../Sample-Input-Files/ves-deploy.input.json | 30 + docs/sections/DCAE-MOD/mod-index.rst | 14 + docs/sections/components/component-development.rst | 7 +- docs/sections/images/1.png | Bin 0 -> 57705 bytes docs/sections/images/10.png | Bin 0 -> 38497 bytes docs/sections/images/11.png | Bin 0 -> 11149 bytes docs/sections/images/12.png | Bin 0 -> 61495 bytes docs/sections/images/13.png | Bin 0 -> 251384 bytes docs/sections/images/14.png | Bin 0 -> 126604 bytes docs/sections/images/15.png | Bin 0 -> 126203 bytes docs/sections/images/16.png | Bin 0 -> 72017 bytes docs/sections/images/17.png | Bin 0 -> 69183 bytes docs/sections/images/18.png | Bin 0 -> 43446 bytes docs/sections/images/19.png | Bin 0 -> 744365 bytes docs/sections/images/2.png | Bin 0 -> 26016 bytes docs/sections/images/20.png | Bin 0 -> 689792 bytes docs/sections/images/21.png | Bin 0 -> 78966 bytes docs/sections/images/22.png | Bin 0 -> 146671 bytes docs/sections/images/23.png | Bin 0 -> 126591 bytes docs/sections/images/24.png | Bin 0 -> 113390 bytes docs/sections/images/25.png | Bin 0 -> 77247 bytes docs/sections/images/26.png | Bin 0 -> 123519 bytes docs/sections/images/27.png | Bin 0 -> 298476 bytes docs/sections/images/3.png | Bin 0 -> 97794 bytes docs/sections/images/4.png | Bin 0 -> 64151 bytes docs/sections/images/5.png | Bin 0 -> 47830 bytes docs/sections/images/6.png | Bin 0 -> 151219 bytes docs/sections/images/7.png | Bin 0 -> 412560 bytes docs/sections/images/8.png | Bin 0 -> 433473 bytes docs/sections/images/9.png | Bin 0 -> 69247 bytes docs/sections/images/DCAE-Mod-Architecture.png | Bin 0 -> 44962 bytes docs/sections/images/Onboarding-with-DCAE-MOD.png | Bin 0 -> 69293 bytes docs/sections/images/nifi-toolbar-components.png | Bin 0 -> 122427 bytes 42 files changed, 3535 insertions(+), 3 deletions(-) create mode 100644 docs/sections/DCAE-MOD/DCAE-MOD-Architecture.rst create mode 100644 docs/sections/DCAE-MOD/DCAE-MOD-Intro.rst create mode 100644 docs/sections/DCAE-MOD/DCAE-MOD-User-Guide.rst create mode 100644 docs/sections/DCAE-MOD/Glossary.rst create mode 100644 docs/sections/DCAE-MOD/Roles.rst create mode 100644 docs/sections/DCAE-MOD/Sample-Input-Files/Request-body-of-Sample-Component.json create mode 100644 docs/sections/DCAE-MOD/Sample-Input-Files/Request-body-of-Sample-Data-Format.json create mode 100644 docs/sections/DCAE-MOD/Sample-Input-Files/tca-deploy.input.json create mode 100644 docs/sections/DCAE-MOD/Sample-Input-Files/ves-deploy.input.json create mode 100644 docs/sections/DCAE-MOD/mod-index.rst create mode 100644 docs/sections/images/1.png create mode 100644 docs/sections/images/10.png create mode 100644 docs/sections/images/11.png create mode 100644 docs/sections/images/12.png create mode 100644 docs/sections/images/13.png create mode 100644 docs/sections/images/14.png create mode 100644 docs/sections/images/15.png create mode 100644 docs/sections/images/16.png create mode 100644 docs/sections/images/17.png create mode 100644 docs/sections/images/18.png create mode 100644 docs/sections/images/19.png create mode 100644 docs/sections/images/2.png create mode 100644 docs/sections/images/20.png create mode 100644 docs/sections/images/21.png create mode 100644 docs/sections/images/22.png create mode 100644 docs/sections/images/23.png create mode 100644 docs/sections/images/24.png create mode 100644 docs/sections/images/25.png create mode 100644 docs/sections/images/26.png create mode 100644 docs/sections/images/27.png create mode 100644 docs/sections/images/3.png create mode 100644 docs/sections/images/4.png create mode 100644 docs/sections/images/5.png create mode 100644 docs/sections/images/6.png create mode 100644 docs/sections/images/7.png create mode 100644 docs/sections/images/8.png create mode 100644 docs/sections/images/9.png create mode 100644 docs/sections/images/DCAE-Mod-Architecture.png create mode 100644 docs/sections/images/Onboarding-with-DCAE-MOD.png create mode 100644 docs/sections/images/nifi-toolbar-components.png diff --git a/docs/index.rst b/docs/index.rst index b8ae7bd6..8d3496cd 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -23,7 +23,8 @@ Data Collection, Analytics, and Events (DCAE) ./sections/configuration.rst ./sections/components/component-development.rst ./sections/services/serviceindex.rst - ./sections/release-notes.rst + ./sections/release-notes.rst + .. image:: https://bestpractices.coreinfrastructure.org/projects/1718/badge diff --git a/docs/sections/DCAE-MOD/DCAE-MOD-Architecture.rst b/docs/sections/DCAE-MOD/DCAE-MOD-Architecture.rst new file mode 100644 index 00000000..4aaf5a08 --- /dev/null +++ b/docs/sections/DCAE-MOD/DCAE-MOD-Architecture.rst @@ -0,0 +1,173 @@ +===================== +DCAE MOD Architecture +===================== + + +DCAE MOD is composed of a mix of components developed in ONAP and other +components taken from the Apache Nifi project and modified for +appropriate use. + +The goal of the project is to stream line the construction, management, +and evolution of DCAE flows from role to role, from environment to +environment, and from release to release. + +DCAE MOD is composed of three functional areas: onboarding, design, and +distribution. + + +Below illustrations describe the architecture of DCAE-MOD and show the +usage flow in DCAE MOD- + +|image0| + +|image1| + +Onboarding API +-------------- + +It is a component developed to onboard +models/components/microservices (spec files) into DCAE MOD. + +Genprocessor +------------ + +It has been developed in Java. This project is a tool to +experiment with generating a Nifi Processor POJO from a DCAE component +spec. + +Nifi Web UI +----------- + +It is a component taken from the Apache Nifi Project but modified for +use in the MOD project. + +Apache NiFi is a dataflow system based on the concepts of flow-based +programming. It supports powerful and scalable directed graphs of data +routing, transformation, and system mediation logic. NiFi has a +web-based user interface for design, control, feedback, and monitoring +of dataflows. It is highly configurable along several dimensions of +quality of service, such as loss-tolerant versus guaranteed delivery, +low latency versus high throughput, and priority-based queuing. NiFi +provides fine-grained data provenance for all data received, forked, +joined cloned, modified, sent, and ultimately dropped upon reaching its +configured end-state. + +The NiFi UI provides mechanisms for creating automated dataflows, as +well as visualizing, editing, monitoring, and administering those +dataflows. The UI can be broken down into several segments, each +responsible for different functionality of the application. This section +provides screenshots of the application and highlights the different +segments of the UI. Each segment is discussed in further detail later in +the document. + +The users of Apache Nifi will find that it is used very differently than +intended to serve our purpose in the DCAE-MOD project. + + +Registry API +------------ + +This component taken from the Apache Nifi project, is a REST API that +provides an interface to a registry with operations for saving, +versioning, reading NiFi flows and components. + +Distributor API +--------------- + +It is a component developed using the Flask framework in Python. +It is a HTTP API to manage distribution targets for DCAE design. +Distribution targets are DCAE runtime environments that have been +registered and are enabled to accept flow design changes that are to be +orchestrated in that environment. + +Flow Based Programming (FBP) +---------------------------- + +NiFi’s fundamental design concepts closely relate to the main ideas of +Flow Based +Programming `[fbp] `__. + +For more information on how some of the main NiFi concepts map to FBP, +check out https://nifi.apache.org/docs/nifi-docs/html/overview.html + +Runtime API +----------- + +It is developed in Java’s Spring Boot framework. It +is a HTTP API to support runtime environment for DCAE-MOD. It has two +major functionalities: + +1. It accepts changes on the flow-graph via fbp protocol + +2. It generates and distributes blueprints based on the change made on + the flow-graph + +Blueprint Generator +------------------- + +This tool allows the user to create a blueprint from a component spec json file. +This tool is used by the runtime api. + +Inventory API +------------- + +DCAE Inventory is a web +service that provides the following: + +1. Real-time data on all DCAE services and their components + +2. Comprehensive details on available DCAE service types + +DCAE Inventory is a composite API that relies on other APIs to obtain +resources on underlying components and uses these resources to compose a +DCAE service resource. In addition, DCAE Inventory will store data that +is unique to the DCAE service level including: + +1. DCAE service metadata + +2. DCAE service type description and composition details + +3. Relationships between DCAE service and DCAE service types and their + respective VNF and VNF types + +DCAE Inventory has a REST interface to service client requests. It has a +well-defined query interface that would filter result sets based upon +resource attributes. + +Here, think of it as a back end API for the DCAE dashboard. The runtime +posts Cloudify Blueprints to this API so they show up in the DCAE +dashboard. + +DCAE Dashboard +-------------- + +The DCAE dashboard provides visibility into running DCAE services for +operational purposes. It queries the DCAE Inventory for aggregate +details on all the running DCAE services and for getting up-to-date +status information on DCAE services and their components. + +End-to-End Flow +--------------- + +A model/component/microservice can be onboarded by a ms Developer by +posting a spec file on the onboarding API. Alternatively, an Acumos +model can be onboarded using the Acumos Adapter. Once successfully +onboarded, the genprocessor converts converts them to jars and onboards +them into Nifi i.e DCAE MOD. These artifacts are now available to use +from the Modified Nifi Web UI i.e DCAE Designer. + +The registry api offers version control and retrieval for flows. The +distributor api can be used to set distribution targets. Once a flow is +designed and distributed, it goes to the distributor api which is +supposed to post graph changes (in accordance with fbp) to the runtime +api. The runtime api generates and distributes blueprints based on the +change made on the flow-graph. These blueprints received by the DCAE +inventory can then be viewed and deployed from the DCAE dashboard. + + + +.. |image0| image:: ../images/DCAE-Mod-Architecture.png + +.. |image1| image:: ../images/Onboarding-with-DCAE-MOD.png + +.. |image2| image:: ../images/nifi-toolbar-components.png diff --git a/docs/sections/DCAE-MOD/DCAE-MOD-Intro.rst b/docs/sections/DCAE-MOD/DCAE-MOD-Intro.rst new file mode 100644 index 00000000..44b3489f --- /dev/null +++ b/docs/sections/DCAE-MOD/DCAE-MOD-Intro.rst @@ -0,0 +1,45 @@ +============ +Introduction +============ + +MOD stands for "micro-service onboarding and design" and the project is +an effort to reboot the onboarding and design experience in DCAE. + + +**Goals and Stretch Goals** +--------------------------- + + +- Due to resource constraints, there are mismatched capabilities between SDC/DCAE-DS and DCAE mS deployment. + +- Due to #1, mS developers upload handcrafted blueprint, and stay involved throughout the deployment process. This also ties mS development to specific Cloudify implementation. + +- There is no Service Assurance flow design in SDC/DCAE-DS, and so there are no reusable flow designs for the Service Designer. + +- There is extensive reliance on developers’ involvement in providing [Inputs.json] as runtime configurations for mS deployment. + +- There is no E2E tracking of the microservice lifecycle. + + +**To address these problems, the new DCAE MOD, replacing the mS onboarding & DCAE-DS in SDC, aims to -** + + + +- Move DCAE mS onboarding & design from SDC project to DCAE Project. + +- Provide simplified mS Onboarding, Service Assurance flow design, & mS microservice design time & runtime configurations to support developers, service designers, and operations. + +- Auto-generate blueprint at the end of the design process, not onboarded before the design process. + +- Support Policy onboarding & artifact distribution to Policy/CLAMP to support Self Service Control Loop. + +- Streamline the process of constructing to deploying flows, Provide the ability to track flows - capture and store the progress and evolution of flows and Provide clear coordination and accountability i.e Provide catalog & data for microservice lifecycle tracking. It fits the ECOMP's release process and must provide clear visibility along the entire process and across different environments. + +- Support automated adaptation of ML model from Acumos to DCAE design & runtime environment through the Acumos Adapter. + +- DCAE-MOD is developed by the DCAE team to ensure consistency across all DCAE implementation, with the long term objective to integrate with SDC as part of the Design Platform. + +- Integrate with ONAP User Experience portals (initially ONAP portal, later SDC portal). + + + diff --git a/docs/sections/DCAE-MOD/DCAE-MOD-User-Guide.rst b/docs/sections/DCAE-MOD/DCAE-MOD-User-Guide.rst new file mode 100644 index 00000000..9a75f7f3 --- /dev/null +++ b/docs/sections/DCAE-MOD/DCAE-MOD-User-Guide.rst @@ -0,0 +1,441 @@ +=================== +DCAE MOD User Guide +=================== + + +- `Types of Users and Usage + Instructions: <#DCAEMODUserGuide(draft)-TypesofUsersand>`__ + +- `1.    Deployment of DCAE MOD components via Helm + charts <#DCAEMODUserGuide(draft)-1.DeploymentofD>`__ + + - `Using DCAE MOD without an Ingress + Controller <#DCAEMODUserGuide(draft)-UsingDCAEMODwit>`__ + +- `2.    Configuring DCAE + mod <#DCAEMODUserGuide(draft)-2.ConfiguringDC>`__ + +- `3.    Design & Distribution + Flow <#DCAEMODUserGuide(draft)-3.Design&Distri>`__ + +Types of Users and Usage Instructions: +====================================== + ++-------+-----------------------------+-----------------------------+ +| Sr.No | User | Usage Instructions | ++=======+=============================+=============================+ +| 1. | Developers who are looking | -        Access the Nifi  | +| | to onboard their mS | Web UI url provided to you | +| | | | +| | | -        Follow steps  2.c | +| | | to 2.f | +| | | | +| | | -        You should be able | +| | | to see your microservices | +| | | in the Nifi Web UI by | +| | | clicking and dragging | +| | | ‘Processor’ on the canvas, | +| | | and searching for the name | +| | | of the | +| | | micros | +| | | ervice/component/processor. | ++-------+-----------------------------+-----------------------------+ +| 2. | Designers who are building | -        Access the Nifi  | +| | the flows through UI and | Web UI url provided to you | +| | triggering distribution | | +| | | -        Follow steps 3 to | +| | | the end of the document | ++-------+-----------------------------+-----------------------------+ +| 3. | Infrastructure/ Admins who | -        Follow start to | +| | want to stand up DCAE Mod | the end | +| | and validate it | | ++-------+-----------------------------+-----------------------------+ + + +1.    Deployment of DCAE MOD components via Helm charts +======================================================= + +The DCAE MOD components are deployed using the standard ONAP OOM +deployment process.   When deploying ONAP using the helm deploy command, +DCAE MOD components are deployed when the dcaemod.enabled flag is set to +true, either via a --set option on the command line or by an entry in an +overrides file.  In this respect, DCAE MOD is no different from any +other ONAP subsystem. + +The default DCAE MOD deployment relies on an nginx ingress controller +being available in the Kubernetes cluster where DCAE MOD is being +deployed.   The Rancher RKE installation process sets up a suitable +ingress controller.   In order to enable the use of the ingress +controller, it is necessary to override the OOM default global settings +for ingress configuration.   Specifically, the installation needs to set +the following configuration in an override file:: + + global: + ingress: + enabled: true + virtualhost: + enabled: false + +When DCAE MOD is deployed with an ingress controller, several endpoints +are exposed outside the cluster at the ingress controller's external IP +address and port.   (In the case of a Rancher RKE installation, there is +an ingress controller on every worker node, listening at the the +standard HTTP port (80).)  These exposed endpoints are needed by users +using machines outside the Kubernetes cluster. + ++--------------+--------------------------------------------------+--------------------------+ +| **Endpoint** | ** Routes to (cluster | **Description** | +| | internal address)** | | ++==============+==================================================+==========================+ +| /nifi | http://dcaemod-designtool:8080/nifi | Design tool Web UI | +| | | | ++--------------+--------------------------------------------------+--------------------------+ +| /nifi-api | http://dcaemod-designtool:8080/nifi-api | Design tool API | +| | | | ++--------------+--------------------------------------------------+--------------------------+ +| /nifi-jars | http://dcaemod-nifi-registry:18080/nifi-jars | Flow registry listing of | +| | | JAR files built from | +| | | component specs | ++--------------+--------------------------------------------------+--------------------------+ +| /onboarding | http://dcaemod-onboarding-api:8080/onboarding | Onboarding API | +| | | | ++--------------+--------------------------------------------------+--------------------------+ +| /distributor | http://dcaemod-distributor-api:8080/distributor | Distributor API | +| | | | ++--------------+--------------------------------------------------+--------------------------+ + +| To access the design Web UI, for example, a user would use the URL : + http://*ingress_controller_address:ingress_controller_port*/nifi. +| *ingress_controller_address* is the the IP address or DNS FQDN of the + ingress controller and +| *ingress_controller_port* is the port on which the ingress controller + is listening for HTTP requests.  (If the port is 80, the HTTP default, + then there is no need to specify a port.) + +There are two additional *internal* endpoints that users need to know, +in order to configure a registry client and a distribution target in the +design tool's controller settings. + ++------------------------+--------------------------------------------+ +| **Configuration Item** | **Endpoint URL** | ++========================+============================================+ +| Registry client | http://dcaemod-nifi-registry:18080 | ++------------------------+--------------------------------------------+ +| Distribution target | http://dcaemod-runtime-api:9090 | ++------------------------+--------------------------------------------+ + +Using DCAE MOD without an Ingress Controller + + +Not currently supported + +2.    Configuring DCAE mod +========================== + +**a. Configure Nifi Registry url** + +Next check Nifi settings by selecting the Hamburger button in the Nifi +UI. It should lead you to the Nifi Settings screen + +|image16| + +|image3| + +Add a registry client. The Registry client url will be +http://dcaemod-nifi-registry:18080 + +|image4| + + +**b. Add distribution target which will be the runtime api url** + +Set the distribution target in the controller settings + +|image17| + +Distribution target URL will be +`http://dcaemod-runtime-api:9090 `__ + + + +Now let’s access the Nifi (DCAE designer) UI - http:///nifi + +IPAddress is the host address or the DNS FQDN, if there is one, for one of the Kubernetes nodes. + +|image0| + + +**c. Get the artifacts to test and onboard.** + +Let's fetch the artifacts/ spec files + +**Sample Component DCAE-VES-Collector :** https://git.onap.org/dcaegen2/collectors/ves/tree/dpo/spec/vescollector-componentspec.json + +**Sample Data Format :** https://git.onap.org/dcaegen2/collectors/ves/tree/dpo/data-formats/VES-5.28.4-dataformat.json + +For the purpose of onboarding, a Sample Request body should be of the type -:: + + { "owner": "", "spec": } + +where the json object inside the spec field can be a component spec json. + +Request bodies of this type will be used in the onboarding requests you make using curl or the onboarding swagger interface. + +**The prepared Sample Request body for a component dcae-ves-collector looks like +so –** + +See :download:`VES Collector Spec <./Sample-Input-Files/Request-body-of-Sample-Component.json>` + +**The prepared Sample request body for a sample data format  looks like so -** + +See :download:`VES data Format <./Sample-Input-Files/Request-body-of-Sample-Data-Format.json>` + + + +**d. To onboard a data format and a component** + +Each component has a description that tells what it does. + +These requests would be of the type + +curl -X POST http:///onboarding/dataformats     -H "Content-Type: application/json" -d +@ + +curl -X POST http:///onboarding/components     -H "Content-Type: application/json" -d +@ + +In our case, + +curl -X POST http:///onboarding/dataformats     -H "Content-Type: application/json" -d @ + +curl -X POST http:///onboarding/components    -H "Content-Type: application/json" -d @ + + + + +**e. Verify the resources were created using** + +curl -X GET http:///onboarding/dataformats + +curl -X GET http:///onboarding/components + +**f. Verify the genprocessor (which polls onboarding periodically to convert component specs to nifi processor), converted the component** + +Open http:///nifi-jars in a browser. + +These jars should now be available for you to use in the nifi UI as +processors + +|image1| + +3.    Design & Distribution Flow +================================ + + +**a**. To start creating flows, we need to create a process group first. The +name of the process group will be the name of the flow. Drag and Drop on +the canvas, the ‘Processor Group’ icon from the DCAE Designer bar on the +top. + +|image2| + + +Now enter the process group by double clicking it, + +You can now drag and drop on the canvas ‘Processor’ icon from the top +DCAE Designer tab. You can search for a particular component in the +search box that appears when you attempt to drag the ‘Processor’ icon to +the canvas. + +|image5| + +If the Nifi registry linking worked, you should see the “Import” button +when you try to add a Processor or Process group to the Nifi canvas, +like so- + +|image6| + +By clicking on the import button, we can import already created saved +and version controlled flows from the Nifi registry, if they are +present. + +|image7| + +We can save created flows by version controlling them like so starting +with a 'right click' anywhere on the canvas- + +|image8| + +Ideally you would name the flow and process group the same, because +functionally they are similar. + +|image9| + +When the flow is checked in, the bar at the bottom shows a green +checkmark + +|image10| + +Note: Even if you move a component around on the canvas, and its +position on the canvas changes, it is recognized as a change, and it +will have to recommitted. + +You can add additional components in your flow and connect them. + +DcaeVesCollector connects to DockerTcagen2. + +|image11| + +|image12| + +|image13| + +Along the way you need to also provide topic names in the settings +section. These can be arbitrary names. + +|image14| + +To recap, see how DcaeVesCollector connects to DockerTcagen2. Look at +the connection relationships. Currently there is no way to validate +these relationships. Notice how it is required to name the topics by +going to Settings. + +The complete flow after joining our components looks like so + +|image15| + + +**b. Submit/ Distribute the flow:** + +Once your flow is complete and saved in the Nifi registry, you can +choose to submit it for distribution. + +|image18| + +If the flow was submitted successfully to the runtime api, you should +get a pop up a success message like so - + +|image19| + +At this step, the design was packaged and sent to Runtime api. + +The runtime is supposed to generate the blueprint out of the packaged +design/flow and push it to the DCAE inventory and the DCAE Dasboard. + +**c. Checking the components in the DCAE Dashboard** + +You should see the generated artifact/ blueprint in the DCAE Dashboard +dashboard at https://:30418/ccsdk-app/login_external.htm in +our deployment. The name for each component will be appended by the flow +name followed by underscore followed by the component’s name. + +The credentials to access the DCAE Dashboard are- + +:: + +Login: su1234 + +Password: fusion + + +|image20| + +|image21| + +|image22| + +The generated Blueprint can be viewed. + +|image23| + +Finally, the generated Blueprint can be deployed. + +|image24| + +You can use/import the attached input configurations files to deploy. Drag and Drop these sample JSON files to fill in the configuration values. +See :download:`VES Collector Input Configuration <./Sample-Input-Files/ves-deploy.input.json>` +See :download:`Tcagen2 Input Configuration <./Sample-Input-Files/tca-deploy.input.json>` + +|image25| + +|image26| + +.. |image0| image:: ../images/1.png + :width: 6.5in + :height: 1.08333in +.. |image1| image:: ../images/2.png + :width: 6.5in + :height: 1.58333in +.. |image2| image:: ../images/3.png + :width: 5.83333in + :height: 3.58333in +.. |image3| image:: ../images/4.png + :width: 4.91667in + :height: 2.16667in +.. |image4| image:: ../images/5.png + :width: 6.5in + :height: 2.66667in +.. |image5| image:: ../images/6.png + :width: 6.5in + :height: 3.33333in +.. |image6| image:: ../images/7.png + :width: 4.91667in + :height: 2.25in +.. |image7| image:: ../images/8.png + :width: 4.91667in + :height: 2.58333in +.. |image8| image:: ../images/9.png + :width: 6.5in + :height: 4.58333in +.. |image9| image:: ../images/10.png + :width: 6.5in + :height: 4in +.. |image10| image:: ../images/11.png + :width: 4.91667in + :height: 0.41667in +.. |image11| image:: ../images/12.png + :width: 6.33333in + :height: 3.16667in +.. |image12| image:: ../images/13.png + :width: 6in + :height: 2.66667in +.. |image13| image:: ../images/14.png + :width: 6.5in + :height: 3.41667in +.. |image14| image:: ../images/15.png + :width: 6.5in + :height: 3.58333in +.. |image15| image:: ../images/16.png + :width: 6.5in + :height: 2.25in +.. |image16| image:: ../images/17.png + :width: 6.5in + :height: 2.83333in +.. |image17| image:: ../images/18.png + :width: 6.5in + :height: 3.08333in +.. |image18| image:: ../images/19.png + :width: 4.91667in + :height: 1.91667in +.. |image19| image:: ../images/20.png + :width: 4.91667in + :height: 2.41667in +.. |image20| image:: ../images/21.png + :width: 6.5in + :height: 2.41667in +.. |image21| image:: ../images/22.png + :width: 6.5in + :height: 3in +.. |image22| image:: ../images/23.png + :width: 6.5in + :height: 2.16667in +.. |image23| image:: ../images/24.png + :width: 6.5in + :height: 2.83333in +.. |image24| image:: ../images/25.png + :width: 6.5in + :height: 3in +.. |image25| image:: ../images/26.png +.. |image26| image:: ../images/27.png + + diff --git a/docs/sections/DCAE-MOD/Glossary.rst b/docs/sections/DCAE-MOD/Glossary.rst new file mode 100644 index 00000000..b4c2beb2 --- /dev/null +++ b/docs/sections/DCAE-MOD/Glossary.rst @@ -0,0 +1,184 @@ +======== +Glossary +======== + + +A&AI - Active and Available Inventory +------------------------------------- +Inventory DB for all network components + + +CLAMP +----- +Non DCAE Platform Component - Controls the input and processing for +Closed Loop services. + + +Closed Loop +----------- +Services designed to monitor and report back to a controlling function +that automatically deals with the event reported without human +interaction. + + + +Cloudify +-------- +Open Source application and network orchestration framework, based on +TOSCA used in DCAE to deploy platform and service components from +Cloudify Blueprints. Refer to `Architecture `__ +for more information. + + +Cloudify Blueprints +------------------- +YAML formatted file used by Cloudify to deploy platform and service +components. Contains all the information needed for installation. + + +Consul +------ +Opensource Platform Component that supports Service Discovery, +Configuration, and Healthcheck. Refer to +`Architecture `__ for more information. + +Component +--------- +Refers to a DCAE service component which is a single micro-service that +is written to be run by the DCAE platform and to be composeable to form +a DCAE service. That composition occurs in the SDC. + + +Config Binding Service +---------------------- +DCAE Platform Component - Service Components use Config Binding Service +to access Consul and retrieve configuration variables. + + +Component Specification +----------------------- +JSON formatted file that fully describes a component and its interfaces + + +Data Format / Data Format Specification +--------------------------------------- +JSON formatted file that fully describes a components input or output + + +Deployment Handler +------------------ +DCAE Platform Component - Receives Input from DTI Handler, and talks to +Cloudify to deploy components. + + +Design-Time +----------- +Refers to when the System Designer uses the SDC Tool to compose services +from components in the SDC catalog. The Designer can provide input to +assign/override defaults for configuration for any parameter with the +property 'designer\_editable' set to 'true'. + + +Deploy-Time +----------- +Refers to when a service is being deployed. This can be done +automatically via the SDC Tool, or manually via the DCAE Dashboard or +CLAMP UI. When manually deployed, DevOps can provide input to +assign/override defaults for configuration for any parameter with the +property 'sourced\_at\_deployment' set to 'true'. + + +Docker +------ +Opensource Platform for development of containerized applications in the +cloud. Many DCAE service components and all DCAE collectors are written +utilizing Docker. + + +Dmaap +----- +AT&T data transportation service platform that supports message-based +topics and file-based feeds. Runs locally at the Edge and Centrally. + + +Inventory +--------- +DCAE Platform Component - Postgres DB containing Cloudify Blueprints for +platform and service components. + + +Policy +------ +Refers to the setting of configuration parameters for a component, by +Operations via the Policy UI. + + +Policy Handler +-------------- +DCAE Platform Component that received Policy updates from Policy UI + + +Policy UI +--------- +Non DCAE Component - Policy User Interace where Operations assigns +values to configuraton specified for this. + + +Run-Time +-------- +Refers to the when a service is running on the platform. Often used in +conjunction with DTI events which occur at Run-time. + + +SCH - Service Change Handler +---------------------------- +DCAE Platform Component - Receives updates from SDC and updates +Inventory + + +SDC - Service Design and Creation +--------------------------------- +Tool used by Service Designers to compose services from SDC catalog +artifacts. Once services are created, Cloudify Blueprints can be +generated to deployment and installation. + + +SDC Catalog +----------- +Catalog of composable Components and Data Formats to be used in the SDC +Tool to create services. Currently, there is no access to the SDC +Catalog from the dcae\_cli tool. Artifacts are manually placed there +after testing. Every catalog artifact has a ``UUID``, a globally unique +identifier that identifies that artifact. + +Self-Service +------------ +Refers to services that are supported by SDC, and that are automatically +installed as a result of a Service Designer's composition and submission +of a service. Only a handful of services are 'self-service' currently. +Most require manual effort to generate the Tosca Model files and +Cloudify Blueprints. + + +Service Component +----------------- +Microservice that provides network monitoring or analytic function on +the DCAE platform. + + +Service +------- +Generally composed of multiple service components, which is deployed to +the DCAE platform. + + +Tosca Model +----------- +Model generated from validated component specification, (stored in SDC +catalog for Self-Service components), and used as input to generate +Cloudify Blueprints + + +VNF - Virtualized Network Function +---------------------------------- +A network function that runs on one or more virtualized machines. diff --git a/docs/sections/DCAE-MOD/Roles.rst b/docs/sections/DCAE-MOD/Roles.rst new file mode 100644 index 00000000..c3460841 --- /dev/null +++ b/docs/sections/DCAE-MOD/Roles.rst @@ -0,0 +1,168 @@ +===== +Roles +===== + + +Here is master list of all roles involved in ECOMP with DCAE: + +- System engineer + +- Component developer/expert - components are also referred to as + micro-services but include collectors, analytics + +- Designer + +- Tester + +- Operations + +- Platform developer + +- Manager + + +System engineer +--------------- + +Person who knows the high-level technical requirements for DCAE's +upcoming release cycle and dictates the development needs.  This person +is responsible for the service assurance flows.  This person expresses +the nodes and connections of a flow at a high level in a new graph or an +existing graph and assigns nodes to component developer/experts to be +implemented. + +This person must know: + +- What newly added flows should look like at a high level + +- What changes that are needed to existing flows + +- Target environments/sites/locations that need the flows at what SLA + +- Data requirements e.g. volume, rate, format, retention + +This person creates a top-level representation of the flow and assigns +the pieces to developers or experts for implementation. + + +Component developer/expert +-------------------------- + +Person who is responsible for defining an assigned node's subgraph.  +This person can be: + +- A developer who might be onboarding a new component or a new version + of an existing component to fulfill the system engineer's + requirements + +- A domain expert who selects a suitable existing component, wires and + configures.  This expert knows the intricacies of a class of + components (e.g. Acumos machine learning). + +Developers +---------- + +They must know: + +- The target DCAE runtime and can develop a component to successfully + run on the runtime + +- The DCAE onboarding process for components including the development + testing procedure + +- Best practices of data flow management (data provenance?) + +- Lifecycle of DCAE components specifically impact of changes to + existing running instances globally + +- The resource requirement of the developed component + +Experts +------- + +They must know: + +- The target DCAE runtime + +- The technical capabilities of a set of components in order to best + select + +- The technical needs of the set of components in order to properly + configure and connect + +Designer +-------- + + +Person who is responsible for connecting remote nodes to flows and +configuring all nodes in a flow in the context of the flow and in the +context of the greater graph.  An example of the former is connecting a +flow with a collector to a black boxed vMME.  An example of the latter +is assigning the threshold to a threshold-crossing-analytics component +when it is connected to a specific VES collector who is connected to a +specific vMME. + +This person knows: + +- The VNFs to monitor and the technical details to correctly connect + with them + +- Enough about the capability of a component and understands the + characteristics and requirements of a flow to properly + assign designer_editable configuration parameters + +This person has the ability to promote flows through the development +process (i.e. FTL to IST to ETE) and will coordinate with testers to +make sure the progression happens. + +Tester +------ + +Person who is responsible for testing a promoted new flow or newly +edited flow.  Once the designer has promoted a flow to a tester's +environment, the tester will have ready access to the deployment +artifacts necessary to apply the runtime changes that will reflect the +flow design and verify the resulting functionality matches to the system +engineer's expectations. + +Person knows and owns a DCAE runtime. + +Read access to the design tool would be useful for troubleshooting. + + +Operations +---------- + +Person who is responsible that DCAE both platform and service assurance +flows are all operational in production environments and locations.  +Once a flow has been fully certified, the required deployment artifact +is provided to operations and operations is responsible for applying the +runtime changes to reflect the flow design. + +Person knows and owns a DCAE runtime. + +Read access to the design tool would be useful for troubleshooting. + + + +Manager +------- + + +Person who are accountable to the business of the successful delivery of +a set of service assurance flows.  Read access to the design tool +specifically high level reports are useful to understand if goals are +being met and to better measure project success. + +Platform developer +------------------ + + +Person who is responsible for the development of the DCAE platform which +ranges from onboarding, design, and runtime.  In the scope of onboarding +and design, they are also responsible (unless there's an internal +operational team) for the operational concerns which means the tooling +built in this effort will need to be continually supported.  +Their **users** are all the above.  The design tool is intended to span +across multiple environments thus must run where all the required +parties have access. diff --git a/docs/sections/DCAE-MOD/Sample-Input-Files/Request-body-of-Sample-Component.json b/docs/sections/DCAE-MOD/Sample-Input-Files/Request-body-of-Sample-Component.json new file mode 100644 index 00000000..68667836 --- /dev/null +++ b/docs/sections/DCAE-MOD/Sample-Input-Files/Request-body-of-Sample-Component.json @@ -0,0 +1,328 @@ +{ + "owner": "mS-Developer", + "spec": { + "self": { + "version": "1.5.4", + "name": "dcae-ves-collector", + "description": "Collector for receiving VES events through restful interface", + "component_type": "docker" + }, + "streams": { + "subscribes": [], + "publishes": [ + { + "format": "VES_specification", + "version": "5.28.4", + "type": "message router", + "config_key": "ves-fault" + }, + { + "format": "VES_specification", + "version": "5.28.4", + "type": "message router", + "config_key": "ves-measurement" + }, + { + "format": "VES_specification", + "version": "5.28.4", + "type": "message router", + "config_key": "ves-syslog" + }, + { + "format": "VES_specification", + "version": "5.28.4", + "type": "message router", + "config_key": "ves-heartbeat" + }, + { + "format": "VES_specification", + "version": "5.28.4", + "type": "message router", + "config_key": "ves-other" + }, + { + "format": "VES_specification", + "version": "5.28.4", + "type": "message router", + "config_key": "ves-mobileflow" + }, + { + "format": "VES_specification", + "version": "5.28.4", + "type": "message router", + "config_key": "ves-statechange" + }, + { + "format": "VES_specification", + "version": "5.28.4", + "type": "message router", + "config_key": "ves-thresholdCrossingAlert" + }, + { + "format": "VES_specification", + "version": "5.28.4", + "type": "message router", + "config_key": "ves-voicequality" + }, + { + "format": "VES_specification", + "version": "5.28.4", + "type": "message router", + "config_key": "ves-sipsignaling" + }, + { + "format": "VES_specification", + "version": "7.30.1", + "type": "message router", + "config_key": "ves-pnfRegistration" + }, + { + "format": "VES_specification", + "version": "7.30.1", + "type": "message router", + "config_key": "ves-notification" + }, + { + "format": "VES_specification", + "version": "7.30.1", + "type": "message router", + "config_key": "ves-perf3gpp" + } + ] + }, + "services": { + "calls": [], + "provides": [ + { + "route": "/eventListener/v1", + "verb": "POST", + "request": { + "format": "VES_specification", + "version": "4.27.2" + }, + "response": { + "format": "ves.coll.response", + "version": "1.0.0" + } + }, + { + "route": "/eventListener/v2", + "verb": "POST", + "request": { + "format": "VES_specification", + "version": "4.27.2" + }, + "response": { + "format": "ves.coll.response", + "version": "1.0.0" + } + }, + { + "route": "/eventListener/v3", + "verb": "POST", + "request": { + "format": "VES_specification", + "version": "4.27.2" + }, + "response": { + "format": "ves.coll.response", + "version": "1.0.0" + } + }, + { + "route": "/eventListener/v4", + "verb": "POST", + "request": { + "format": "VES_specification", + "version": "4.27.2" + }, + "response": { + "format": "ves.coll.response", + "version": "1.0.0" + } + }, + { + "route": "/eventListener/v5", + "verb": "POST", + "request": { + "format": "VES_specification", + "version": "5.28.4" + }, + "response": { + "format": "ves.coll.response", + "version": "1.0.0" + } + }, + { + "route": "/eventListener/v7", + "verb": "POST", + "request": { + "format": "VES_specification", + "version": "7.30.1" + }, + "response": { + "format": "ves.coll.response", + "version": "1.0.0" + } + } + ] + }, + "parameters": [ + { + "name": "collector.service.port", + "value": 8080, + "description": "standard http port collector will open for listening;", + "sourced_at_deployment": false, + "policy_editable": false, + "designer_editable": false + }, + { + "name": "collector.service.secure.port", + "value": 8443, + "description": "secure http port collector will open for listening ", + "sourced_at_deployment": false, + "policy_editable": false, + "designer_editable": true + }, + { + "name": "collector.keystore.file.location", + "value": "/opt/app/dcae-certificate/cert.jks", + "description": "fs location of keystore file in vm", + "sourced_at_deployment": false, + "policy_editable": false, + "designer_editable": false + }, + { + "name": "collector.keystore.passwordfile", + "value": "/opt/app/dcae-certificate/jks.pass", + "description": "location of keystore password file in vm", + "sourced_at_deployment": false, + "policy_editable": false, + "designer_editable": false + }, + { + "name": "collector.truststore.file.location", + "value": "/opt/app/dcae-certificate/trust.jks", + "description": "fs location of truststore file in vm", + "sourced_at_deployment": false, + "policy_editable": false, + "designer_editable": false + }, + { + "name": "collector.truststore.passwordfile", + "value": "/opt/app/dcae-certificate/trust.pass", + "description": "location of truststore password file in vm", + "sourced_at_deployment": false, + "policy_editable": false, + "designer_editable": false + }, + { + "name": "collector.dmaap.streamid", + "value": "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|perf3gpp=ves-perf3gpp", + "description": "domain-to-streamid mapping used by VESCollector to distributes events based on domain. Both primary and secondary config_key are included for resilency (multiple streamid can be included commma separated). The streamids MUST match to topic config_keys. For single site without resiliency deployment - configkeys with -secondary suffix can be removed", + "sourced_at_deployment": true, + "policy_editable": false, + "designer_editable": false + }, + { + "name": "auth.method", + "value": "noAuth", + "description": "Property to manage application mode, possible configurations: noAuth - default option - no security (http) , certOnly - auth by certificate (https), basicAuth - auth by basic auth username and password (https),certBasicAuth - auth by certificate and basic auth username / password (https),", + "sourced_at_deployment": false, + "policy_editable": false, + "designer_editable": false + }, + { + "name": "header.authlist", + "value": "sample1,$2a$10$pgjaxDzSuc6XVFEeqvxQ5u90DKJnM/u7TJTcinAlFJVaavXMWf/Zi|userid1,$2a$10$61gNubgJJl9lh3nvQvY9X.x4e5ETWJJ7ao7ZhJEvmfJigov26Z6uq|userid2,$2a$10$G52y/3uhuhWAMy.bx9Se8uzWinmbJa.dlm1LW6bYPdPkkywLDPLiy", + "description": "List of id and base 64 encoded password.For each onboarding VNF - unique userid and password should be assigned and communicated to VNF owner. Password value should be base64 encoded in config here", + "policy_editable": false, + "sourced_at_deployment": true, + "designer_editable": true + }, + { + "name": "collector.schema.checkflag", + "value": 1, + "description": "Schema check validation flag. When enabled, collector will validate input VES events against VES Schema defined on collector.schema.file ", + "sourced_at_deployment": false, + "policy_editable": false, + "designer_editable": false + }, + { + "name": "collector.schema.file", + "value": "{\"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\"}", + "description": "VES schema file name per version used for validation", + "designer_editable": true, + "sourced_at_deployment": false, + "policy_editable": false + }, + { + "name": "event.transform.flag", + "value": 1, + "description": "flag to enable tranformation rules defined under eventTransform.json; this is applicable when event tranformation rules preset should be activated for transforming elements, starting at 1", + "type": "string" + }, + "url": { + "description": "Hyperlink to a detailed error resource e.g., an HTML page for browser user agents", + "type": "string" + }, + "variables": { + "description": "List of zero or more strings that represent the contents of the variables used by the message text", + "type": "string" + } + }, + "required": [ + "messageId", + "text" + ] + }, + "sipSignalingFields": { + "description": "sip signaling fields", + "type": "object", + "properties": { + "additionalInformation": { + "description": "additional sip signaling fields if needed", + "type": "array", + "items": { + "$ref": "#/definitions/field" + } + }, + "compressedSip": { + "description": "the full SIP request/response including headers and bodies", + "type": "string" + }, + "correlator": { + "description": "this is the same for all events on this call", + "type": "string" + }, + "localIpAddress": { + "description": "IP address on VNF", + "type": "string" + }, + "localPort": { + "description": "port on VNF", + "type": "string" + }, + "remoteIpAddress": { + "description": "IP address of peer endpoint", + "type": "string" + }, + "remotePort": { + "description": "port of peer endpoint", + "type": "string" + }, + "sipSignalingFieldsVersion": { + "description": "version of the sipSignalingFields block", + "type": "number" + }, + "summarySip": { + "description": "the SIP Method or Response (‘INVITE’, ‘200 OK’, ‘BYE’, etc)", + "type": "string" + }, + "vendorVnfNameFields": { + "$ref": "#/definitions/vendorVnfNameFields" + } + }, + "required": [ + "correlator", + "localIpAddress", + "localPort", + "remoteIpAddress", + "remotePort", + "sipSignalingFieldsVersion", + "vendorVnfNameFields" + ] + }, + "stateChangeFields": { + "description": "stateChange fields", + "type": "object", + "properties": { + "additionalFields": { + "description": "additional stateChange fields if needed", + "type": "array", + "items": { + "$ref": "#/definitions/field" + } + }, + "newState": { + "description": "new state of the entity", + "type": "string", + "enum": [ + "inService", + "maintenance", + "outOfService" + ] + }, + "oldState": { + "description": "previous state of the entity", + "type": "string", + "enum": [ + "inService", + "maintenance", + "outOfService" + ] + }, + "stateChangeFieldsVersion": { + "description": "version of the stateChangeFields block", + "type": "number" + }, + "stateInterface": { + "description": "card or port name of the entity that changed state", + "type": "string" + } + }, + "required": [ + "newState", + "oldState", + "stateChangeFieldsVersion", + "stateInterface" + ] + }, + "suppressedNvPairs": { + "description": "List of specific NvPairsNames to suppress within a given Name-Value Field for event Throttling", + "type": "object", + "properties": { + "nvPairFieldName": { + "description": "Name of the field within which are the nvpair names to suppress", + "type": "string" + }, + "suppressedNvPairNames": { + "description": "Array of nvpair names to suppress within the nvpairFieldName", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "nvPairFieldName", + "suppressedNvPairNames" + ] + }, + "syslogFields": { + "description": "sysLog fields", + "type": "object", + "properties": { + "additionalFields": { + "description": "additional syslog fields if needed provided as name=value delimited by a pipe ‘|’ symbol, for example: 'name1=value1|name2=value2|…'", + "type": "string" + }, + "eventSourceHost": { + "description": "hostname of the device", + "type": "string" + }, + "eventSourceType": { + "description": "type of event source; examples: other, router, switch, host, card, port, slotThreshold, portThreshold, virtualMachine, virtualNetworkFunction", + "type": "string" + }, + "syslogFacility": { + "description": "numeric code from 0 to 23 for facility--see table in documentation", + "type": "integer" + }, + "syslogFieldsVersion": { + "description": "version of the syslogFields block", + "type": "number" + }, + "syslogMsg": { + "description": "syslog message", + "type": "string" + }, + "syslogPri": { + "description": "0-192 combined severity and facility", + "type": "integer" + }, + "syslogProc": { + "description": "identifies the application that originated the message", + "type": "string" + }, + "syslogProcId": { + "description": "a change in the value of this field indicates a discontinuity in syslog reporting", + "type": "number" + }, + "syslogSData": { + "description": "syslog structured data consisting of a structured data Id followed by a set of key value pairs", + "type": "string" + }, + "syslogSdId": { + "description": "0-32 char in format name@number for example ourSDID@32473", + "type": "string" + }, + "syslogSev": { + "description": "numerical Code for severity derived from syslogPri as remaider of syslogPri / 8", + "type": "string", + "enum": [ + "Alert", + "Critical", + "Debug", + "Emergency", + "Error", + "Info", + "Notice", + "Warning" + ] + }, + "syslogTag": { + "description": "msgId indicating the type of message such as TCPOUT or TCPIN; NILVALUE should be used when no other value can be provided", + "type": "string" + }, + "syslogVer": { + "description": "IANA assigned version of the syslog protocol specification - typically 1", + "type": "number" + } + }, + "required": [ + "eventSourceType", + "syslogFieldsVersion", + "syslogMsg", + "syslogTag" + ] + }, + "thresholdCrossingAlertFields": { + "description": "fields specific to threshold crossing alert events", + "type": "object", + "properties": { + "additionalFields": { + "description": "additional threshold crossing alert fields if needed", + "type": "array", + "items": { + "$ref": "#/definitions/field" + } + }, + "additionalParameters": { + "description": "performance counters", + "type": "array", + "items": { + "$ref": "#/definitions/counter" + } + }, + "alertAction": { + "description": "Event action", + "type": "string", + "enum": [ + "CLEAR", + "CONT", + "SET" + ] + }, + "alertDescription": { + "description": "Unique short alert description such as IF-SHUB-ERRDROP", + "type": "string" + }, + "alertType": { + "description": "Event type", + "type": "string", + "enum": [ + "CARD-ANOMALY", + "ELEMENT-ANOMALY", + "INTERFACE-ANOMALY", + "SERVICE-ANOMALY" + ] + }, + "alertValue": { + "description": "Calculated API value (if applicable)", + "type": "string" + }, + "associatedAlertIdList": { + "description": "List of eventIds associated with the event being reported", + "type": "array", + "items": { + "type": "string" + } + }, + "collectionTimestamp": { + "description": "Time when the performance collector picked up the data; with RFC 2822 compliant format: Sat, 13 Mar 2010 11:29:05 -0800", + "type": "string" + }, + "dataCollector": { + "description": "Specific performance collector instance used", + "type": "string" + }, + "elementType": { + "description": "type of network element - internal ATT field", + "type": "string" + }, + "eventSeverity": { + "description": "event severity or priority", + "type": "string", + "enum": [ + "CRITICAL", + "MAJOR", + "MINOR", + "WARNING", + "NORMAL" + ] + }, + "eventStartTimestamp": { + "description": "Time closest to when the measurement was made; with RFC 2822 compliant format: Sat, 13 Mar 2010 11:29:05 -0800", + "type": "string" + }, + "interfaceName": { + "description": "Physical or logical port or card (if applicable)", + "type": "string" + }, + "networkService": { + "description": "network name - internal ATT field", + "type": "string" + }, + "possibleRootCause": { + "description": "Reserved for future use", + "type": "string" + }, + "thresholdCrossingFieldsVersion": { + "description": "version of the thresholdCrossingAlertFields block", + "type": "number" + } + }, + "required": [ + "additionalParameters", + "alertAction", + "alertDescription", + "alertType", + "collectionTimestamp", + "eventSeverity", + "eventStartTimestamp", + "thresholdCrossingFieldsVersion" + ] + }, + "vendorVnfNameFields": { + "description": "provides vendor, vnf and vfModule identifying information", + "type": "object", + "properties": { + "vendorName": { + "description": "VNF vendor name", + "type": "string" + }, + "vfModuleName": { + "description": "ASDC vfModuleName for the vfModule generating the event", + "type": "string" + }, + "vnfName": { + "description": "ASDC modelName for the VNF generating the event", + "type": "string" + } + }, + "required": [ + "vendorName" + ] + }, + "vNicPerformance": { + "description": "describes the performance and errors of an identified virtual network interface card", + "type": "object", + "properties": { + "receivedBroadcastPacketsAccumulated": { + "description": "Cumulative count of broadcast packets received as read at the end of the measurement interval", + "type": "number" + }, + "receivedBroadcastPacketsDelta": { + "description": "Count of broadcast packets received within the measurement interval", + "type": "number" + }, + "receivedDiscardedPacketsAccumulated": { + "description": "Cumulative count of discarded packets received as read at the end of the measurement interval", + "type": "number" + }, + "receivedDiscardedPacketsDelta": { + "description": "Count of discarded packets received within the measurement interval", + "type": "number" + }, + "receivedErrorPacketsAccumulated": { + "description": "Cumulative count of error packets received as read at the end of the measurement interval", + "type": "number" + }, + "receivedErrorPacketsDelta": { + "description": "Count of error packets received within the measurement interval", + "type": "number" + }, + "receivedMulticastPacketsAccumulated": { + "description": "Cumulative count of multicast packets received as read at the end of the measurement interval", + "type": "number" + }, + "receivedMulticastPacketsDelta": { + "description": "Count of multicast packets received within the measurement interval", + "type": "number" + }, + "receivedOctetsAccumulated": { + "description": "Cumulative count of octets received as read at the end of the measurement interval", + "type": "number" + }, + "receivedOctetsDelta": { + "description": "Count of octets received within the measurement interval", + "type": "number" + }, + "receivedTotalPacketsAccumulated": { + "description": "Cumulative count of all packets received as read at the end of the measurement interval", + "type": "number" + }, + "receivedTotalPacketsDelta": { + "description": "Count of all packets received within the measurement interval", + "type": "number" + }, + "receivedUnicastPacketsAccumulated": { + "description": "Cumulative count of unicast packets received as read at the end of the measurement interval", + "type": "number" + }, + "receivedUnicastPacketsDelta": { + "description": "Count of unicast packets received within the measurement interval", + "type": "number" + }, + "transmittedBroadcastPacketsAccumulated": { + "description": "Cumulative count of broadcast packets transmitted as read at the end of the measurement interval", + "type": "number" + }, + "transmittedBroadcastPacketsDelta": { + "description": "Count of broadcast packets transmitted within the measurement interval", + "type": "number" + }, + "transmittedDiscardedPacketsAccumulated": { + "description": "Cumulative count of discarded packets transmitted as read at the end of the measurement interval", + "type": "number" + }, + "transmittedDiscardedPacketsDelta": { + "description": "Count of discarded packets transmitted within the measurement interval", + "type": "number" + }, + "transmittedErrorPacketsAccumulated": { + "description": "Cumulative count of error packets transmitted as read at the end of the measurement interval", + "type": "number" + }, + "transmittedErrorPacketsDelta": { + "description": "Count of error packets transmitted within the measurement interval", + "type": "number" + }, + "transmittedMulticastPacketsAccumulated": { + "description": "Cumulative count of multicast packets transmitted as read at the end of the measurement interval", + "type": "number" + }, + "transmittedMulticastPacketsDelta": { + "description": "Count of multicast packets transmitted within the measurement interval", + "type": "number" + }, + "transmittedOctetsAccumulated": { + "description": "Cumulative count of octets transmitted as read at the end of the measurement interval", + "type": "number" + }, + "transmittedOctetsDelta": { + "description": "Count of octets transmitted within the measurement interval", + "type": "number" + }, + "transmittedTotalPacketsAccumulated": { + "description": "Cumulative count of all packets transmitted as read at the end of the measurement interval", + "type": "number" + }, + "transmittedTotalPacketsDelta": { + "description": "Count of all packets transmitted within the measurement interval", + "type": "number" + }, + "transmittedUnicastPacketsAccumulated": { + "description": "Cumulative count of unicast packets transmitted as read at the end of the measurement interval", + "type": "number" + }, + "transmittedUnicastPacketsDelta": { + "description": "Count of unicast packets transmitted within the measurement interval", + "type": "number" + }, + "valuesAreSuspect": { + "description": "Indicates whether vNicPerformance values are likely inaccurate due to counter overflow or other condtions", + "type": "string", + "enum": [ + "true", + "false" + ] + }, + "vNicIdentifier": { + "description": "vNic identification", + "type": "string" + } + }, + "required": [ + "valuesAreSuspect", + "vNicIdentifier" + ] + }, + "voiceQualityFields": { + "description": "provides statistics related to customer facing voice products", + "type": "object", + "properties": { + "additionalInformation": { + "description": "additional voice quality fields if needed", + "type": "array", + "items": { + "$ref": "#/definitions/field" + } + }, + "calleeSideCodec": { + "description": "callee codec for the call", + "type": "string" + }, + "callerSideCodec": { + "description": "caller codec for the call", + "type": "string" + }, + "correlator": { + "description": "this is the same for all events on this call", + "type": "string" + }, + "endOfCallVqmSummaries": { + "$ref": "#/definitions/endOfCallVqmSummaries" + }, + "phoneNumber": { + "description": "phone number associated with the correlator", + "type": "string" + }, + "midCallRtcp": { + "description": "Base64 encoding of the binary RTCP data excluding Eth/IP/UDP headers", + "type": "string" + }, + "vendorVnfNameFields": { + "$ref": "#/definitions/vendorVnfNameFields" + }, + "voiceQualityFieldsVersion": { + "description": "version of the voiceQualityFields block", + "type": "number" + } + }, + "required": [ + "calleeSideCodec", + "callerSideCodec", + "correlator", + "midCallRtcp", + "vendorVnfNameFields", + "voiceQualityFieldsVersion" + ] + } + } + } + } +} diff --git a/docs/sections/DCAE-MOD/Sample-Input-Files/tca-deploy.input.json b/docs/sections/DCAE-MOD/Sample-Input-Files/tca-deploy.input.json new file mode 100644 index 00000000..c3faf800 --- /dev/null +++ b/docs/sections/DCAE-MOD/Sample-Input-Files/tca-deploy.input.json @@ -0,0 +1,21 @@ +{ + "spring.data.mongodb.uri": "mongodb://dcae-mongohost/dcae-tcagen2", + "tca.aai.enable_enrichment": true, + "docker-tcagen2_memory_request": "512Mi", + "replicas": 1, + "docker-tcagen2_cpu_limit": "250m", + "tca.aai.username": "DCAE", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.analytics.tca-gen2.dcae-analytics-tca-web:1.0.1", + "service_component_name_override": "dcaegen2-tcagen2", + "use_tls": true, + "always_pull_image": true, + "tca.aai.url": "http://aai.onap.svc.cluster.local", + "location_id": "", + "envs": {}, + "tca_handle_in_subscribe_url": "http://message-router:3904/events/unauthenticated.VES_MEASUREMENT_OUTPUT/", + "tca_handle_out_publish_url": "http://message-router:3904/events/unauthenticated.TCAGEN2_OUTPUT/", + "external_port_0": 0, + "docker-tcagen2_memory_limit": "512Mi", + "docker-tcagen2_cpu_request": "250m", + "tca.aai.password": "DCAE" +} \ No newline at end of file diff --git a/docs/sections/DCAE-MOD/Sample-Input-Files/ves-deploy.input.json b/docs/sections/DCAE-MOD/Sample-Input-Files/ves-deploy.input.json new file mode 100644 index 00000000..d86ff0bc --- /dev/null +++ b/docs/sections/DCAE-MOD/Sample-Input-Files/ves-deploy.input.json @@ -0,0 +1,30 @@ +{ + "always_pull_image": true, + "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|perf3gpp=ves-perf3gpp", + "dcae-ves-collector_cpu_limit": "250m", + "dcae-ves-collector_cpu_request": "250m", + "dcae-ves-collector_memory_limit": "512Mi", + "dcae-ves-collector_memory_request": "512Mi", + "envs": {}, + "external_port_0": 30235, + "external_port_1": 0, + "header.authlist": "sample1,$2a$10$pgjaxDzSuc6XVFEeqvxQ5u90DKJnM/u7TJTcinAlFJVaavXMWf/Zi|userid1,$2a$10$61gNubgJJl9lh3nvQvY9X.x4e5ETWJJ7ao7ZhJEvmfJigov26Z6uq|userid2,$2a$10$G52y/3uhuhWAMy.bx9Se8uzWinmbJa.dlm1LW6bYPdPkkywLDPLiy", + "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:1.5.4", + "location_id": "", + "replicas": 1, + "service_component_name_override": "dcae-ves-collector-http", + "use_tls": true, + "ves_fault_publish_url": "http://message-router:3904/events/unauthenticated.SEC_FAULT_OUTPUT/", + "ves_heartbeat_publish_url": "http://message-router:3904/events/unauthenticated.SEC_HEARTBEAT_OUTPUT/", + "ves_measurement_publish_url": "http://message-router:3904/events/unauthenticated.VES_MEASUREMENT_OUTPUT/", + "ves_mobileflow_publish_url": "http://message-router:3904/events/unauthenticated.SEC_OTHER_OUTPUT/", + "ves_notification_publish_url": "http://message-router:3904/events/unauthenticated.VES_NOTIFICATION_OUTPUT/", + "ves_other_publish_url": "http://message-router:3904/events/unauthenticated.SEC_OTHER_OUTPUT/", + "ves_perf3gpp_publish_url": "http://message-router:3904/events/unauthenticated.SEC_OTHER_OUTPUT/", + "ves_pnfRegistration_publish_url": "http://message-router:3904/events/unauthenticated.VES_PNFREG_OUTPUT/", + "ves_sipsignaling_publish_url": "http://message-router:3904/events/unauthenticated.SEC_OTHER_OUTPUT/", + "ves_statechange_publish_url": "http://message-router:3904/events/unauthenticated.SEC_OTHER_OUTPUT/", + "ves_syslog_publish_url": "http://message-router:3904/events/unauthenticated.SEC_OTHER_OUTPUT/", + "ves_thresholdCrossingAlert_publish_url": "http://message-router:3904/events/unauthenticated.SEC_OTHER_OUTPUT/", + "ves_voicequality_publish_url": "http://message-router:3904/events/unauthenticated.SEC_OTHER_OUTPUT/" +} \ No newline at end of file diff --git a/docs/sections/DCAE-MOD/mod-index.rst b/docs/sections/DCAE-MOD/mod-index.rst new file mode 100644 index 00000000..8e72fb36 --- /dev/null +++ b/docs/sections/DCAE-MOD/mod-index.rst @@ -0,0 +1,14 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + +DCAE Model Onboarding and Design (DCAE MOD) +=========================================== + +.. toctree:: + :maxdepth: 1 + + ./DCAE-MOD-Intro.rst + ./DCAE-MOD-Architecture.rst + ./Roles.rst + ./DCAE-MOD-User-Guide.rst + ./Glossary.rst \ No newline at end of file diff --git a/docs/sections/components/component-development.rst b/docs/sections/components/component-development.rst index 63c7f389..196e7a09 100644 --- a/docs/sections/components/component-development.rst +++ b/docs/sections/components/component-development.rst @@ -8,12 +8,15 @@ Onboarding Pre-requisite (Service Component) :maxdepth: 1 ./intro.rst + ../DCAE-MOD/mod-index.rst ./architecture/pieces.rst ./architecture/service-discovery.rst - ./blueprint_generator.rst + ./architecture/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 \ No newline at end of file + ./glossary.rst + + diff --git a/docs/sections/images/1.png b/docs/sections/images/1.png new file mode 100644 index 00000000..e734a673 Binary files /dev/null and b/docs/sections/images/1.png differ diff --git a/docs/sections/images/10.png b/docs/sections/images/10.png new file mode 100644 index 00000000..9a7f75ad Binary files /dev/null and b/docs/sections/images/10.png differ diff --git a/docs/sections/images/11.png b/docs/sections/images/11.png new file mode 100644 index 00000000..fe5ed014 Binary files /dev/null and b/docs/sections/images/11.png differ diff --git a/docs/sections/images/12.png b/docs/sections/images/12.png new file mode 100644 index 00000000..f2d5a360 Binary files /dev/null and b/docs/sections/images/12.png differ diff --git a/docs/sections/images/13.png b/docs/sections/images/13.png new file mode 100644 index 00000000..c63d1361 Binary files /dev/null and b/docs/sections/images/13.png differ diff --git a/docs/sections/images/14.png b/docs/sections/images/14.png new file mode 100644 index 00000000..5b507b10 Binary files /dev/null and b/docs/sections/images/14.png differ diff --git a/docs/sections/images/15.png b/docs/sections/images/15.png new file mode 100644 index 00000000..1529ef04 Binary files /dev/null and b/docs/sections/images/15.png differ diff --git a/docs/sections/images/16.png b/docs/sections/images/16.png new file mode 100644 index 00000000..e3a7e36d Binary files /dev/null and b/docs/sections/images/16.png differ diff --git a/docs/sections/images/17.png b/docs/sections/images/17.png new file mode 100644 index 00000000..54347d18 Binary files /dev/null and b/docs/sections/images/17.png differ diff --git a/docs/sections/images/18.png b/docs/sections/images/18.png new file mode 100644 index 00000000..150e1c61 Binary files /dev/null and b/docs/sections/images/18.png differ diff --git a/docs/sections/images/19.png b/docs/sections/images/19.png new file mode 100644 index 00000000..b578b103 Binary files /dev/null and b/docs/sections/images/19.png differ diff --git a/docs/sections/images/2.png b/docs/sections/images/2.png new file mode 100644 index 00000000..20bd7a01 Binary files /dev/null and b/docs/sections/images/2.png differ diff --git a/docs/sections/images/20.png b/docs/sections/images/20.png new file mode 100644 index 00000000..80f56e92 Binary files /dev/null and b/docs/sections/images/20.png differ diff --git a/docs/sections/images/21.png b/docs/sections/images/21.png new file mode 100644 index 00000000..c92a2346 Binary files /dev/null and b/docs/sections/images/21.png differ diff --git a/docs/sections/images/22.png b/docs/sections/images/22.png new file mode 100644 index 00000000..bf4f1c02 Binary files /dev/null and b/docs/sections/images/22.png differ diff --git a/docs/sections/images/23.png b/docs/sections/images/23.png new file mode 100644 index 00000000..98fd7970 Binary files /dev/null and b/docs/sections/images/23.png differ diff --git a/docs/sections/images/24.png b/docs/sections/images/24.png new file mode 100644 index 00000000..2784fddf Binary files /dev/null and b/docs/sections/images/24.png differ diff --git a/docs/sections/images/25.png b/docs/sections/images/25.png new file mode 100644 index 00000000..55464c46 Binary files /dev/null and b/docs/sections/images/25.png differ diff --git a/docs/sections/images/26.png b/docs/sections/images/26.png new file mode 100644 index 00000000..9486bb80 Binary files /dev/null and b/docs/sections/images/26.png differ diff --git a/docs/sections/images/27.png b/docs/sections/images/27.png new file mode 100644 index 00000000..3c0bd2f3 Binary files /dev/null and b/docs/sections/images/27.png differ diff --git a/docs/sections/images/3.png b/docs/sections/images/3.png new file mode 100644 index 00000000..7d1d9df0 Binary files /dev/null and b/docs/sections/images/3.png differ diff --git a/docs/sections/images/4.png b/docs/sections/images/4.png new file mode 100644 index 00000000..69706f63 Binary files /dev/null and b/docs/sections/images/4.png differ diff --git a/docs/sections/images/5.png b/docs/sections/images/5.png new file mode 100644 index 00000000..ec158035 Binary files /dev/null and b/docs/sections/images/5.png differ diff --git a/docs/sections/images/6.png b/docs/sections/images/6.png new file mode 100644 index 00000000..b3f7e7bc Binary files /dev/null and b/docs/sections/images/6.png differ diff --git a/docs/sections/images/7.png b/docs/sections/images/7.png new file mode 100644 index 00000000..adb8a941 Binary files /dev/null and b/docs/sections/images/7.png differ diff --git a/docs/sections/images/8.png b/docs/sections/images/8.png new file mode 100644 index 00000000..e04c60ed Binary files /dev/null and b/docs/sections/images/8.png differ diff --git a/docs/sections/images/9.png b/docs/sections/images/9.png new file mode 100644 index 00000000..c18e9487 Binary files /dev/null and b/docs/sections/images/9.png differ diff --git a/docs/sections/images/DCAE-Mod-Architecture.png b/docs/sections/images/DCAE-Mod-Architecture.png new file mode 100644 index 00000000..ce5fca92 Binary files /dev/null and b/docs/sections/images/DCAE-Mod-Architecture.png differ diff --git a/docs/sections/images/Onboarding-with-DCAE-MOD.png b/docs/sections/images/Onboarding-with-DCAE-MOD.png new file mode 100644 index 00000000..4883b65e Binary files /dev/null and b/docs/sections/images/Onboarding-with-DCAE-MOD.png differ diff --git a/docs/sections/images/nifi-toolbar-components.png b/docs/sections/images/nifi-toolbar-components.png new file mode 100644 index 00000000..fa90afef Binary files /dev/null and b/docs/sections/images/nifi-toolbar-components.png differ -- cgit 1.2.3-korg