.. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 ============================= Configuration and Performance ============================= The DataFile Collector (DFC) gets fileReady messages from the Message Router (MR) sent from xNFs, via the VES Collector. These messages contains data about files ready to get from the xNF. DFC then collects these files from the xNF and publishes them to the DataRouter (DR) on a feed. Consumers can subscribe to the feed from DR and process the file for its specific purpose. The connection between a file type and the feed it will be published to is the **changeIdentifier**. DFC can handle multiple **changeIdentifier**/feed combinations, see picture below. .. image:: ../../images/DFC_config.png Configuration ^^^^^^^^^^^^^ By default, DFC handles the "PM_MEAS_FILES" change identifier and publishes these files on the "bulk_pm_feed" feed. But it can also be configured to handle more/other change identifiers and publish them to more/other feeds. The configuration of DFC is controlled via a blueprint. Blueprint Configuration Explained """"""""""""""""""""""""""""""""" For the communication with the Message Router, the user must provide the **host name**, **port**, and **protocol** of the DMaaP Message router. .. code-block:: yaml :emphasize-lines: 2,6,10 inputs: dmaap_mr_host: type: string description: dmaap messagerouter host default: message-router.onap.svc.cluster.local dmaap_mr_port: type: integer description: dmaap messagerouter port default: 3904 dmaap_mr_protocol: type: string description: dmaap messagerouter protocol default: "http" The user can also specify which version of DFC to use. .. code-block:: yaml :emphasize-lines: 2 inputs: tag_version: type: string description: DFC image tag/version default: "nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server:1.2.0" The user can also enable secure communication with the DMaaP Message Router. .. code-block:: yaml :emphasize-lines: 2 inputs: secureEnableCert: type: boolean description: enable certificate based connection with DMaap default: false DFC can handle multiple change identifiers. For each change identifier/feed combination the user must provide the **change identifier**, **feed name**, and **feed location**. **Note!** The **feed name** provided should be used by the consumer/s to set up the subscription to the feed. The **feed name** and **feed location** are defined as inputs for the user to provide. .. code-block:: yaml :emphasize-lines: 2,6 inputs: feed0_name: type: string description: The name of the feed the files will be published to. Should be used by the subscriber. default: "bulk_pm_feed" feed0_location: type: string description: The location of the feed. default: "loc00" The **feed name** shall be used in the definition of the feed for the DMaaP plugin under the "**node_templates**" section under a tag for the internal "**feed identifier**" for the feed (feed0 in the example). .. code-block:: yaml :emphasize-lines: 1,5 feed0: type: ccsdk.nodes.Feed properties: feed_name: get_input: feed0_name useExisting: true The **feed location** shall be used under the **streams_publishes** section under a tag for the internal "**feed identifier**" for the feed. .. code-block:: yaml :emphasize-lines: 2,4 streams_publishes: - name: feed0 location: get_input: feed0_location type: data_router The **change identifier** shall be defined as an item under the **streams_publishes** tag in the "**application_config**" section. Under this tag the internal "**feed identifier**" for the feed shall also be added to get the info about the feed substituted in by CBS (that's what the <<>> tags are for). .. code-block:: yaml :emphasize-lines: 4,5 application_config: service_calls: [] streams_publishes: PM_MEAS_FILES: dmaap_info: <> type: data_router And, lastly, to set up the publication relationship for the feed, the "**feed identifier**" must be added to the "**relationships**" section of the blueprint. .. code-block:: yaml :emphasize-lines: 3 relationships: - type: ccsdk.relationships.publish_files target: feed0 Sample blueprint configuration """""""""""""""""""""""""""""" The format of the blueprint configuration that drives all behavior of DFC is probably best described using an example. The blueprint below configures DFC to handle the two feeds shown in the picture above. .. code-block:: yaml inputs: dmaap_mr_host: type: string description: dmaap messagerouter host default: message-router.onap.svc.cluster.local dmaap_mr_port: type: integer description: dmaap messagerouter port default: 3904 dmaap_mr_protocol: type: string description: dmaap messagerouter protocol default: "http" tag_version: type: string description: DFC image tag/version default: "nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server:1.2.0" replicas: type: integer description: number of instances default: 1 secureEnableCert: type: boolean description: enable certificate based connection with DMaap default: false envs: default: {} feed0_name: type: string description: The name of the feed the files will be published to. Should be used by the subscriber. default: "bulk_pm_feed" feed0_location: type: string description: The location of the feed. default: "loc00" feed1_name: type: string description: The name of the feed the files will be published to. Should be used by the subscriber. default: "log_feed" feed1_location: type: string description: The location of the feed. default: "loc00" node_templates: datafile-collector: type: dcae.nodes.ContainerizedServiceComponentUsingDmaap interfaces: cloudify.interfaces.lifecycle: start: inputs: envs: get_input: envs properties: application_config: service_calls: [] dmaap.security.enableDmaapCertAuth: { get_input: secureEnableCert } streams_subscribes: dmaap_subscriber: dmaap_info: topic_url: { concat: [{ get_input: dmaap_mr_protocol },"://",{ get_input: dmaap_mr_host }, ":",{ get_input: dmaap_mr_port },"/events/unauthenticated.VES_NOTIFICATION_OUTPUT/OpenDcae-c12/C12"]} streams_publishes: PM_MEAS_FILES: dmaap_info: <> type: data_router LOG_FILES: dmaap_info: <> type: data_router image: get_input: tag_version service_component_type: datafile-collector streams_publishes: - name: feed0 location: get_input: feed0_location type: data_router - name: feed1 location: get_input: feed1_location type: data_router relationships: - type: ccsdk.relationships.publish_files target: feed0 - type: ccsdk.relationships.publish_files target: feed1 feed0: type: ccsdk.nodes.Feed properties: feed_name: get_input: feed0_name useExisting: true feed1: type: ccsdk.nodes.Feed properties: feed_name: get_input: feed1_name useExisting: true Performance ^^^^^^^^^^^ To see the performance of DFC, see "`Datafile Collector (DFC) performance baseline results`_". .. _Datafile Collector (DFC) performance baseline results: https://wiki.onap.org/display/DW/Datafile+Collector+%28DFC%29+performance+baseline+results