Heartbeat Microservice User Documentation
User Documentation for heartbeat Microservice
Issue-ID: DCAEGEN2-280
Change-Id: I158680b11b5d5de4a0d58f4d2f03816e2b1941fc
Signed-off-by: PrakashH <pbhandar@techmahindra.com>
diff --git a/docs/sections/services/heartbeat-ms/architecture.rst b/docs/sections/services/heartbeat-ms/architecture.rst
new file mode 100644
index 0000000..f97fa24
--- /dev/null
+++ b/docs/sections/services/heartbeat-ms/architecture.rst
@@ -0,0 +1,47 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+.. _architecture:
+
+High-level architecture of Heartbeat Microservice
+=================================================
+
+**Heartbeat Microservice**’s startup script (misshtbtd.py) gets the
+configuration from CBS and parses these entries and saves them in the
+postgres database having table name **vnf_table_1**. Each entry in the
+configuration is for a particular eventName. Each entry has missed
+heartbeat count, heartbeat interval, Control loop name etc. along with
+many other parameters.
+
+Whenever a heartbeat event is received, the sourceName, lastEpochTime
+and other information is stored in another postgres database having
+table name **vnf_table_2**. It is designed to process the heartbeat event
+having different sourceNames having same eventName. In such case,
+sourceName count is maintained in vnf_table_1 which would give number of
+SouceNames that have same eventName. As and when new sourceName is
+received, sourceName count is incremented in vnf_table_1
+
+The heartbeat Microservice is designed to support multiple instances of
+HB Microservice to run simultaneously. The first instance of the HB
+Microservice would assume the role of active instance, and instances
+that started running later would become inactive instances. If the
+active HB microservice is not responding or killed, the inactive HB
+instance would take over the active role. To achieve this functionality,
+one more postgres table **hb_common** is introduced which has parameters
+specific to active instances such as process id/hostname of the active
+instance, last accessed time updated by active instance.
+
+Heartbeat Microservice supports the periodic download of CBS
+configuration. The periodicity of download can be configured.
+
+Heartbeat Microservice also supports the download of CBS configuration
+whenever configuration changes. Here Docker container would call the
+function/method to download the CBS configuration.
+
+The heartbeat microservice has 2 states
+
+**Reconfiguration state**– Download configuration from CBS and update
+the vnf_table_1 is in progress.
+
+**Running state** – Normal working that comprises of receiving of HB
+events and sending of control loop event if required conditions are met.
diff --git a/docs/sections/services/heartbeat-ms/build_setup.rst b/docs/sections/services/heartbeat-ms/build_setup.rst
new file mode 100644
index 0000000..f2943cc
--- /dev/null
+++ b/docs/sections/services/heartbeat-ms/build_setup.rst
@@ -0,0 +1,210 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+.. _build_setup:
+
+
+Build and Setup procedure
+=========================
+
+ONAP Repository
+---------------
+
+Use the below repository for Heartbeat Microservice.
+
+ https://gerrit.onap.org/r/#/admin/projects/dcaegen2/services/heartbeat
+
+POD 25 access
+-------------
+
+To run heartbeat Micro Service in development environment, POD25
+access is required. Please get the access and install Openvpn.
+
+Connect to POD25 setup using Openvpn and the credentials obtained.
+
+Docker build procedure
+----------------------
+
+Clone the code using below command
+ .. code-block:: bash
+ git clone https://gerrit.onap.org/r/dcaegen2/services/heartbeat
+
+give executable permission to mvn-phase-script.sh if not there
+already
+ .. code-block:: bash
+
+ chmod +x mvn-phase-script.sh
+
+**Setting up the postgres DB, group/consumer IDs, CBS download and
+CBS polling. The following environment variables are to be set.**
+
+ For postgres and CBS download, the environment setting file to be
+ passed while running the Docker. The file would contain following
+ parameters. The sample values are shown for reference.
+
+ ::
+ pg_ipAddress=10.0.4.1
+ pg_portNum=5432
+ pg_userName=postgres
+ pg_passwd=abc
+ #Below parameters for CBS download
+ SERVICE_NAME=mvp-dcaegen2-heartbeat-static
+ CONSUL_HOST=10.12.6.50
+ HOSTNAME=mvp-dcaegen2-heartbeat-static
+ #Below parameter for heartbeat worker process to receive message
+ groupID=group1
+ consumerID=1
+
+ If the postgres parameters are not there in environment setting file,
+ then it takes the values from miss_htbt_service/config/hbproperties.yaml
+ file. Make sure that postgres running in the machine where pg_ipAddress
+ parameter is mentioned.
+
+ Run below netstat command to check postgres port number and IP address are fine.
+
+ .. code-block:: bash
+ netstat -ant
+
+ If CBS parameters are not there in the environment setting file, then
+ local config file (etc/config.json) is considered as a default
+ configuration file.
+
+ For CBS polling CBS_polling_allowed & CBS_polling_interval to be set
+ appropriately in miss_htbt_service/config/hbproperties.yaml file
+
+ The sample values in miss_htbt_service/config/hbproperties.yaml file
+ are as follows
+ .. code-block:: YAML
+
+ pg_ipAddress: 10.0.4.1
+ pg_portNum: 5432
+ pg_userName: postgres
+ pg_passwd: postgres
+ pg_dbName: hb_vnf
+ CBS_polling_allowed: True
+ CBS_polling_interval: 300
+
+ PS: Change the groupID and consumerID in the environment accordingly
+ for each HB instance so that HB worker process receive the HB event
+ correctly. Usually groupID remains the same for all instance of HB
+ where as consumerID would be changed for each instance of HB Micro
+ service. If groupID and consumerID is not provided, then it takes
+ “DefaultGroup” and “1” respectively.
+
+**Setting CBS configuration parameters using the consule KV URL.**
+
+ The sample consul KV is as below.
+ ::
+ http://10.12.6.50:8500/ui/#/dc1/kv/mvp-dcaegen2-heartbeat-static
+
+ Go to the above link and click on KEY/VALUE tab
+
+ Click on mvp-dcaegen2-heartbeat-static
+
+ Copy the configuration in the box provided and click on update.
+
+ The sample configuration is as below
+
+ .. code-block:: json
+
+ {
+ "heartbeat_config": {
+ "vnfs": [{
+ "eventName": "Heartbeat_S",
+ "heartbeatcountmissed": 3,
+ "heartbeatinterval": 60,
+ "closedLoopControlName": "ControlLoopEvent1",
+ "policyVersion": "1.0.0.5",
+ "policyName": "vFireWall",
+ "policyScope": "resource=sampleResource,type=sampletype,CLName=sampleCLName",
+ "target_type": "VM",
+ "target": "genVnfName",
+ "version": "2.0"
+ },
+ {
+ "eventName": "Heartbeat_vFW",
+ "heartbeatcountmissed": 3,
+ "heartbeatinterval": 60,
+ "closedLoopControlName": "ControlLoopEvent1",
+ "policyVersion": "1.0.0.5",
+ "policyName": "vFireWall",
+ "policyScope": "resource=sampleResource,type=sampletype,CLName=sampleCLName",
+ "target_type": "VNF",
+ "target": "genVnfName",
+ "version": "2.0"
+ }
+ ]
+ },
+
+ "streams_publishes": {
+ "ves_heartbeat": {
+ "dmaap_info": {
+ "topic_url": "http://10.12.5.252:3904/events/unauthenticated.DCAE_CL_OUTPUT/"
+ },
+ "type": "message_router"
+ }
+ },
+ "streams_subscribes": {
+ "ves_heartbeat": {
+ "dmaap_info": {
+ "topic_url": "http://10.12.5.252:3904/events/unauthenticated.SEC_HEARTBEAT_INPUT/"
+ },
+ "type": "message_router"
+ }
+ }
+ }
+
+**Build the Docker using below command with a image name**
+
+ .. code-block:: bash
+
+ sudo Docker build --no-cache --network=host -f ./Dockerfile -t
+ heartbeat.test1:latest .
+
+ To check whether image is built or not, run below command
+
+ .. code-block:: bash
+ sudo Docker images |grep heartbeat.test1
+
+**Run the Docker using below command which uses the environment file
+mentioned in the above section.**
+
+ .. code-block:: bash
+ sudo Docker run -d --name hb1 --env-file env.list
+ heartbeat.test1:latest
+
+ To check the logs, run below command
+
+ .. code-block:: bash
+ sudo Docker logs -f hb1
+
+**To stop the Docker run**
+
+ Get the Docker container ID from below command
+
+ .. code-block:: bash
+
+ sudo Docker ps -a \| grep heartbeat.test1
+
+ Run below commands to stop the Docker run
+
+ .. code-block:: bash
+
+ sudo Docker stop <Docker container ID)
+ sudo Docker rm -f hb1
+
+**Initiate the maven build**
+
+ To run the maven build, execute any one of them.
+
+ .. code-block:: bash
+ sudo mvn -s settings.xml deploy
+ OR
+ sudo mvn -s settings.xml -X deploy
+
+ If there is a libxml-xpath related issue, then install the
+ libxml-xpath as below. If the issue is something else, follow the
+ link given as part of the build failure.
+
+ .. code-block:: bash
+ sudo apt install libxml-xpath-perl
diff --git a/docs/sections/services/heartbeat-ms/design.rst b/docs/sections/services/heartbeat-ms/design.rst
new file mode 100644
index 0000000..fa4490f
--- /dev/null
+++ b/docs/sections/services/heartbeat-ms/design.rst
@@ -0,0 +1,166 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+.. _design:
+
+Design
+======
+
+There are 4 processes created as below
+
+Main process
+------------
+
+This is the initial process which does the following.
+
+- Download CBS configuration and update the vnf_table_1
+- Spawns HB worker process, DB Monitoring process and CBS polling
+ process (if required)
+- Periodically update the hb_common table
+
+HB worker process
+-----------------
+
+This process is created by main process and does the following.
+
+- It waits on the HB Json event message from DMaaP message router
+- It receives the HB Json message and retrieves sourceName,
+ lastEpochTime, eventName in the incoming message
+- It checks for the received eventName against the eventName in
+ vnf_table_1. If eventName is not matched, then it discards the
+ message.
+- It checks for the received sourceName in the vnf_table_2. If the
+ sourceName is already there in vnf_table_2, then it updates the
+ received HB Json message in vnf_table_2 against that sourceName. If
+ the sourceName is not there in vnf_table_2, then it adds an entry in
+ vnf_table_2 for that eventName and increments the sourceName count in
+ vnf_table_1
+
+DB Monitoring process
+---------------------
+
+This process is created by main process and does the following.
+
+- The DB monitoring process scans through each entry of vnf_table_1 and
+ looks at the corresponding vnf_table_2 and checks the condition for
+ Control Loop event is met or not
+- If it finds that the multiple consecutive HB are missed, it raises
+ the Control Loop event.
+- It also clears the control loop event by looking at recently received
+ HB message.
+- Because of reconfiguration procedure, some of the existing entries in
+ vnf_table_1 may become invalid. DB Monitoring process would clean the
+ DB by looking at validity flag maintained in each vnf_table_1 table
+ entry. If not valid, it removes the entry in vnf_table_1 and also
+ removes the corresponding entries of vnf_table_2.
+
+CBS polling process
+-------------------
+
+If the local configuration file (config/hbproperties.yaml) indicates
+that CBS polling is required, then main process would create the CBS
+polling process. It does the following.
+
+- It takes the CBS polling interval from the configuration file.
+
+- For every CBS polling interval, it sets the hb_common with state as
+ reconfiguration to indicate the main process to download CBS
+ configuration
+
+CBS configuration download support
+----------------------------------
+
+Apart from the above, a function/method is provided to Docker container
+that would download the CBS configuration whenever the configuration
+changes. This method/function would read hb_common state and change the
+state to reconfiguration.
+
+Heartbeat Microserice Multi instance support
+--------------------------------------------
+
+In order to work smoothly in an environment having multiple HB micro
+services instances, processes would work differently as mentioned below.
+
+**Main Process:**
+
+ Active Instance:
+ - Download CBS configuration and process it
+ - Spawns processes
+ - Periodically update hb_common with last accessed time to indicate that active instance is Alive.
+
+ Inactive Instance:
+ - Spawns processes
+ - Constantly check hb_common entry for last accessed time
+ - If the last accessed time is more than a minute or so, then it assumes the role of active instance
+
+**HB worker process:** Both active and inactive instance behaves the sames as metnioned in the Design section.
+
+**DB Monitoring process:** Both active periodically checks its process ID/hostname with hb_common data to know whether it is an active instance or not. If inactive instance it does nothing. If active instance, it behaves as mentioned in design section.
+
+**CBS Polling process:** Periodically checks its process ID/hostname with hb_common data to know whether it is an active instance or not. If inactive instance it does nothing. If active instance, it behaves as mentioned in design section.
+
+Handling of some of the failure scenarios
+-----------------------------------------
+
+Failure to download the configuration from CBS – In this case, local
+configuration file etc/config.json is considered as the configuration
+file and vnf_table_1 is updated accordingly.
+
+The Reconfiguration procedure is as below
+-----------------------------------------
+
+- If the state is Reconfiguration, then HB worker process, DB
+ monitoring process and CBS polling process would wait for
+ reconfiguration to complete.
+- Set each entry as invalid by using validity flag in vnf_table_1
+- Download the json file from CBS.
+- Set the validity flag to indicate to valid when an entry is updated.
+
+Postgres Database
+-----------------
+
+There are 3 tables maintained.
+
+**Vnf_table_1 table:**
+This is table is indexed by eventName. Each entry
+has following parameters in it.
+
+- eventName
+- Configured heartbeat Missed Count
+- Configured Heartbeat Interval
+- Number of SourceName having same eventName
+- Validity flag that indicates VNF entry is valid or not
+- It also has following parameter related to Control loop event
+ - policyVersion
+ - policyName
+ - policyScope
+ - target_type
+ - target
+ - closedLoopControlName
+ - version
+
+**Vnf_table_2 table:**
+For each sourceName there would be an entry in vnf_table_2.
+This is indexed by eventName and SourceName. Each entry has
+below parameters
+
+- SourceName
+- Last received heartbeat epoch time
+- Control loop event raised flag. 0 indicates not raised, 1 indicates
+ CL event raised
+
+**hb_common table:**
+This is a single entry table.
+
+- The configuration status which would have one of the below.
+ - **RECONFIGURATION** – indicates CBS configuration processing is in
+ progress.
+ - **RUNNING** – CBS configuration is completed and ready to process HB
+ event and send CL event.
+- The process ID – This indicates the main process ID of the active HB
+ instance which is responsible to take care of reconfiguration
+- The source Name – It has 2 parts, hostname and service name. The
+ hostname is the Docker container ID. The service name is the
+ environment variable set for SERVICE_NAME
+- The last accessed time – The time last accessed by the main process
+ having the above process ID.
diff --git a/docs/sections/services/heartbeat-ms/index.rst b/docs/sections/services/heartbeat-ms/index.rst
new file mode 100644
index 0000000..4b67e98
--- /dev/null
+++ b/docs/sections/services/heartbeat-ms/index.rst
@@ -0,0 +1,24 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Heartbeat Microservice (version 2.1.0)
+======================================
+
+The main objective of **Heartbeat Microservice** is to receive the periodic
+heartbeat from the configured eventNames and report the loss of heartbeat
+onto DMaap if number of consecutive missed heartbeat count is more than
+the configured missed heartbeat count
+
+Heartbeat Microservice overview and functions
+---------------------------------------------
+
+.. toctree::
+ :maxdepth: 1
+
+ architecture
+ design
+ build_setup
+ testprocedure
+
+
+
diff --git a/docs/sections/services/heartbeat-ms/testprocedure.rst b/docs/sections/services/heartbeat-ms/testprocedure.rst
new file mode 100644
index 0000000..6f80fc4
--- /dev/null
+++ b/docs/sections/services/heartbeat-ms/testprocedure.rst
@@ -0,0 +1,435 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+.. _testprocedure:
+
+Test procedures and Postgres Database access
+============================================
+
+Postgres DB access
+------------------
+
+Login into postgres DB
+
+Run below commands to login into postgres DB and connect to HB Micro service DB.
+
+::
+ sudo su postgres
+ psql
+ \l hb_vnf
+
+Sample output is as below
+
+::
+ ubuntu@r3-dcae:~$ sudo su postgres
+ postgres@r3-dcae:/home/ubuntu$ psql
+ psql (9.5.14)
+ Type "help" for help.
+
+ postgres=# \l
+ List of databases
+ Name | Owner | Encoding | Collate | Ctype | Access privileges
+ -----------+----------+----------+-------------+-------------+-----------------------
+ hb_vnf | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
+ postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
+ template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
+ | | | | | postgres=CTc/postgres
+ template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
+ | | | | | postgres=CTc/postgres
+ (4 rows)
+
+ postgres=# \c hb_vnf
+ You are now connected to database "hb_vnf" as user "postgres".
+ hb_vnf=#
+
+Delete all tables before starting Docker run or local run
+---------------------------------------------------------
+
+After login into postgres and connect to hb_vnf as mentioned in (4.a), use below commands to delete the tables if exists
+
+DROP TABLE vnf_table_1;
+DROP TABLE vnf_table_2;
+DROP TABLE hb_common;
+
+The sample output is as below
+
+::
+
+ hb_vnf=# DROP TABLE vnf_table_1;
+ DROP TABLE
+ hb_vnf=# DROP TABLE vnf_table_2;
+ DROP TABLE
+ hb_vnf=# DROP TABLE hb_common;
+ DROP TABLE
+ hb_vnf=#
+
+Use select command to check the contents of vnf_table_1, vnf_table_2 and hb_common
+----------------------------------------------------------------------------------
+
+SELECT * FROM vnf_table_1;
+SELECT * FROM vnf_table_2;
+SELECT * FROM hb_common;
+
+The sample output is as below
+
+::
+
+ hb_vnf=# SELECT * FROM vnf_table_1;
+
+ event_name | heartbeat_missed_count | heartbeat_interval | closed_control_loop_name | policy_version | policy_name | policy_scope | target_type | target | version | source_name_count | validity_flag
+ ---------------+------------------------+--------------------+--------------------------+----------------+-------------+-------------------------------------------------------------+-------------+------------+---------+-------------------+---------------
+ Heartbeat_S | 4 | 60 | ControlLoopEvent1 | 1.0.0.5 | vFireWall | resource=sampleResource,type=sampletype,CLName=sampleCLName | VM | genVnfName | 2.0 | 0 | 1
+ Heartbeat_vFW | 4 | 50 | ControlLoopEvent1 | 1.0.0.5 | vFireWall | resource=sampleResource,type=sampletype,CLName=sampleCLName | VNF | genVnfName | 2.0 | 0 | 1
+ (2 rows)
+
+ hb_vnf=# SELECT * FROM vnf_table_2;
+ event_name | source_name_key | last_epo_time | source_name | cl_flag
+ ---------------+-----------------+---------------+--------------+---------
+ Heartbeat_vFW | 1 | 1544705272479 | SOURCE_NAME1 | 0
+ (1 row)
+
+ hb_vnf=#
+
+ hb_vnf=# SELECT * FROM hb_common;
+ process_id | source_name | last_accessed_time | current_state
+ ------------+--------------------------------------------+--------------------+---------------
+ 8 | 21d744ae8cd5-mvp-dcaegen2-heartbeat-static | 1544710271 | RUNNING
+ (1 row)
+
+ hb_vnf=#
+
+Testing procedures
+==================
+
+Injecting event into HB micro service
+-------------------------------------
+
+Once after starting the Docker run or local run, below commands run from tests/ directory would send event to HB worker process
+
+::
+
+ curl -i -X POST -d {"test":"msg"} --header "Content-Type: application/json" http://10.12.5.252:3904/events/unauthenticated.SEC_HEARTBEAT_INPUT
+ curl -i -X POST -d @test1.json --header "Content-Type: application/json" http://10.12.5.252:3904/events/unauthenticated.SEC_HEARTBEAT_INPUT
+ curl -i -X POST -d @test2.json --header "Content-Type: application/json" http://10.12.5.252:3904/events/unauthenticated.SEC_HEARTBEAT_INPUT
+ curl -i -X POST -d @test3.json --header "Content-Type: application/json" http://10.12.5.252:3904/events/unauthenticated.SEC_HEARTBEAT_INPUT
+
+The sample output is as below
+
+::
+
+ ubuntu@r3-aai-inst2:~/heartbeat12Dec/heartbeat/tests$ curl -i -X POST -d @test1.json --header "Content-Type: application/json" http://10.12.5.252:3904/events/unauthenticated.SEC_HEARTBEAT_INPUT
+ HTTP/1.1 200 OK
+ Date: Wed, 12 Dec 2018 12:41:26 GMT
+ Content-Type: application/json
+ Accept: */*
+ breadcrumbId: ID-22f076777975-37104-1543559663227-0-563929
+ User-Agent: curl/7.47.0
+ X-CSI-Internal-WriteableRequest: true
+ Content-Length: 41
+ Server: Jetty(9.3.z-SNAPSHOT)
+
+ {
+ "serverTimeMs": 0,
+ "count": 1
+ }
+
+
+
+ curl -i -X POST -d @test1.json --header "Content-Type: application/json" http://10.12.5.252:3904/events/unauthenticated.SEC_HEARTBEAT_INPUT
+ ubuntu@r3-aai-inst2:~/heartbeat12Dec/heartbeat/tests$ curl -i -X POST -d @test2.json --header "Contet-Type: application/json" http://10.12.5.252:3904/events/unauthenticated.SEC_HEARTBEAT_INPUT
+ HTTP/1.1 200 OK
+ Date: Wed, 12 Dec 2018 12:41:39 GMT
+ Content-Type: application/json
+ Accept: */*
+ breadcrumbId: ID-22f076777975-37104-1543559663227-0-563937
+ User-Agent: curl/7.47.0
+ X-CSI-Internal-WriteableRequest: true
+ Content-Length: 41
+ Server: Jetty(9.3.z-SNAPSHOT)
+
+ {
+ "serverTimeMs": 0,
+ "count": 1
+ }
+
+
+ ubuntu@r3-aai-inst2:~/heartbeat12Dec/heartbeat/tests$ curl -i -X POST -d @test3.json --header "Contet-Type: application/json" http://10.12.5.252:3904/events/unauthenticated.SEC_HEARTBEAT_INPUT
+ HTTP/1.1 200 OK
+ Date: Wed, 12 Dec 2018 12:41:39 GMT
+ Content-Type: application/json
+ Accept: */*
+ breadcrumbId: ID-22f076777975-37104-1543559663227-0-563937
+ User-Agent: curl/7.47.0
+ X-CSI-Internal-WriteableRequest: true
+ Content-Length: 41
+ Server: Jetty(9.3.z-SNAPSHOT)
+
+ {
+ "serverTimeMs": 0,
+ "count": 1
+ }
+
+Testing Control loop event
+--------------------------
+
+- Modify the Json as below
+ Modify the lastEpochTime and startEpochTime with current time in Test1.json
+ Modify the eventName in Test1.json to one of the eventName in vnf_table_1
+
+- Inject the Test1.json as mentioned in above section
+
+- Get missed heartbeat count (for e.g 3) and heartbeat interval (for e.g. 60 seconds) for the eventName from vnf_table_1. Wait for heartbeat to miss multiple time, i.e. 3 * 60seconds = 180 seconds.
+
+After waiting for the specified period, you would see the control loop event. The sample one is as below.
+
+::
+
+ 2018-12-13 12:51:13,016 | __main__ | db_monitoring | db_monitoring | 95 | INFO | ('DBM:Time to raise Control Loop Event for target type - ', 'VNF')
+ 2018-12-13 12:51:13,016 | __main__ | db_monitoring | db_monitoring | 132 | INFO | ('DBM: CL Json object is', '{"closedLoopEventClient": "DCAE_Heartbeat_MS", "policyVersion": "1.0.0.5", "policyName": "vFireWall", "policyScope": "resource=sampleResource,type=sampletype,CLName=sampleCLName", "target_type": "VNF", "AAI": {"generic-vnf.vnf-name": "SOURCE_NAME1"}, "closedLoopAlarmStart": 1544705473016, "closedLoopEventStatus": "ONSET", "closedLoopControlName": "ControlLoopEvent1", "version": "2.0", "target": "genVnfName", "requestID": "8c1b8bd8-06f7-493f-8ed7-daaa4cc481bc", "from": "DCAE"}')
+
+The postgres DB also have a CL_flag set indicating control loop event with ONSET is raised.
+
+::
+
+ hb_vnf=# SELECT * FROM vnf_table_2;
+ event_name | source_name_key | last_epo_time | source_name | cl_flag
+ ---------------+-----------------+---------------+--------------+---------
+ Heartbeat_vFW | 1 | 1544705272479 | SOURCE_NAME1 | 1
+ (1 row)
+
+ hb_vnf=#
+
+**The sample log from startup is as below**
+
+::
+
+ ubuntu@r3-aai-inst2:~/heartbeat12Dec/heartbeat$ sudo Docker run -d --name hb1 --env-file env.list heartbeat.test1:latest102413e8af4ab754e008cee43a01bf3d5439820aa91cfb4e099a140a7931fd71
+ ubuntu@r3-aai-inst2:~/heartbeat12Dec/heartbeat$ sudo Docker logs -f hb1
+ /usr/local/lib/python3.6/site-packages/psycopg2/__init__.py:144: UserWarning: The psycopg2 wheel package will be renamed from release 2.8; in order to keep installing from binary please use "pip install psycopg2-binary" instead. For details see: <http://initd.org/psycopg/docs/install.html#binary-install-from-pypi>.
+ """)
+ 2018-12-12 12:39:58,968 | __main__ | misshtbtd | main | 309 | INFO | MSHBD:Execution Started
+ 2018-12-12 12:39:58,970 | __main__ | misshtbtd | main | 314 | INFO | ('MSHBT:HB Properties -', '10.0.4.1', '5432', 'postgres', 'abc', 'hb_vnf', True, 300)
+ 2018-12-12 12:39:58,970 | onap_dcae_cbs_docker_client.client | client | _get_uri_from_consul | 36 | DEBUG | Trying to lookup service: http://10.12.6.50:8500/v1/catalog/service/config_binding_service
+ 2018-12-12 12:39:58,974 | urllib3.connectionpool | connectionpool | _new_conn | 208 | DEBUG | Starting new HTTP connection (1): 10.12.6.50
+ 2018-12-12 12:39:58,976 | urllib3.connectionpool | connectionpool | _make_request | 396 | DEBUG | http://10.12.6.50:8500 "GET /v1/catalog/service/config_binding_service HTTP/1.1" 200 375
+ 2018-12-12 12:39:58,979 | urllib3.connectionpool | connectionpool | _new_conn | 208 | DEBUG | Starting new HTTP connection (1): 10.12.6.50
+ 2018-12-12 12:39:58,988 | urllib3.connectionpool | connectionpool | _make_request | 396 | DEBUG | http://10.12.6.50:10000 "GET /service_component/mvp-dcaegen2-heartbeat-static HTTP/1.1" 200 1015
+ 2018-12-12 12:39:58,989 | onap_dcae_cbs_docker_client.client | client | _get_path | 83 | INFO | get_config returned the following configuration: {"heartbeat_config": {"vnfs": [{"eventName": "Heartbeat_S", "heartbeatcountmissed": 3, "heartbeatinterval": 60, "closedLoopControlName": "ControlLoopEvent1", "policyVersion": "1.0.0.5", "policyName": "vFireWall", "policyScope": "resource=sampleResource,type=sampletype,CLName=sampleCLName", "target_type": "VM", "target": "genVnfName", "version": "2.0"}, {"eventName": "Heartbeat_vFW", "heartbeatcountmissed": 3, "heartbeatinterval": 60, "closedLoopControlName": "ControlLoopEvent1", "policyVersion": "1.0.0.5", "policyName": "vFireWall", "policyScope": "resource=sampleResource,type=sampletype,CLName=sampleCLName", "target_type": "VNF", "target": "genVnfName", "version": "2.0"}]}, "streams_publishes": {"ves_heartbeat": {"dmaap_info": {"topic_url": "http://10.12.5.252:3904/events/unauthenticated.DCAE_CL_OUTPUT/"}, "type": "message_router"}}, "streams_subscribes": {"ves_heartbeat": {"dmaap_info": {"topic_url": "http://10.12.5.252:3904/events/unauthenticated.SEC_HEARTBEAT_INPUT/"}, "type": "message_router"}}}
+ 2018-12-12 12:39:58,989 | __main__ | misshtbtd | fetch_json_file | 254 | INFO | MSHBD:current config logged to : ../etc/download.json
+ 2018-12-12 12:39:58,996 | __main__ | misshtbtd | fetch_json_file | 272 | INFO | ('MSHBT: The json file is - ', '../etc/config.json')
+ 2018-12-12 12:39:59,028 | __main__ | misshtbtd | create_database | 79 | INFO | ('MSHBT:Create_database:DB not exists? ', (False,))
+ 2018-12-12 12:39:59,030 | __main__ | misshtbtd | create_database | 86 | INFO | MSHBD:Database already exists
+ 2018-12-12 12:39:59,032 | __main__ | misshtbtd | create_update_db | 281 | INFO | ('MSHBT: DB parameters -', '10.0.4.1', '5432', 'postgres', 'abc', 'hb_vnf')
+ 2018-12-12 12:39:59,099 | __main__ | misshtbtd | main | 325 | INFO | ('MSHBD:Current process id is', 7)
+ 2018-12-12 12:39:59,099 | __main__ | misshtbtd | main | 326 | INFO | MSHBD:Now be in a continuous loop
+ 2018-12-12 12:39:59,111 | __main__ | misshtbtd | main | 331 | INFO | ('MSHBT: hb_common values ', 6, 'RUNNING', '8909e4332e34-mvp-dcaegen2-heartbeat-static', 1544618286)
+ 2018-12-12 12:39:59,111 | __main__ | misshtbtd | main | 335 | INFO | ('MSHBD:pid,srcName,state,time,ctime,timeDiff is', 6, '8909e4332e34-mvp-dcaegen2-heartbeat-static', 'RUNNING', 1544618286, 1544618399, 113)
+ 2018-12-12 12:39:59,111 | __main__ | misshtbtd | main | 378 | INFO | MSHBD:Active instance is inactive for long time: Time to switchover
+ 2018-12-12 12:39:59,111 | __main__ | misshtbtd | main | 380 | INFO | MSHBD:Initiating to become Active Instance
+ 2018-12-12 12:39:59,111 | onap_dcae_cbs_docker_client.client | client | _get_uri_from_consul | 36 | DEBUG | Trying to lookup service: http://10.12.6.50:8500/v1/catalog/service/config_binding_service
+ 2018-12-12 12:39:59,114 | urllib3.connectionpool | connectionpool | _new_conn | 208 | DEBUG | Starting new HTTP connection (1): 10.12.6.50
+ 2018-12-12 12:39:59,118 | urllib3.connectionpool | connectionpool | _make_request | 396 | DEBUG | http://10.12.6.50:8500 "GET /v1/catalog/service/config_binding_service HTTP/1.1" 200 375
+ 2018-12-12 12:39:59,120 | urllib3.connectionpool | connectionpool | _new_conn | 208 | DEBUG | Starting new HTTP connection (1): 10.12.6.50
+ 2018-12-12 12:39:59,129 | urllib3.connectionpool | connectionpool | _make_request | 396 | DEBUG | http://10.12.6.50:10000 "GET /service_component/mvp-dcaegen2-heartbeat-static HTTP/1.1" 200 1015
+ 2018-12-12 12:39:59,129 | onap_dcae_cbs_docker_client.client | client | _get_path | 83 | INFO | get_config returned the following configuration: {"heartbeat_config": {"vnfs": [{"eventName": "Heartbeat_S", "heartbeatcountmissed": 3, "heartbeatinterval": 60, "closedLoopControlName": "ControlLoopEvent1", "policyVersion": "1.0.0.5", "policyName": "vFireWall", "policyScope": "resource=sampleResource,type=sampletype,CLName=sampleCLName", "target_type": "VM", "target": "genVnfName", "version": "2.0"}, {"eventName": "Heartbeat_vFW", "heartbeatcountmissed": 3, "heartbeatinterval": 60, "closedLoopControlName": "ControlLoopEvent1", "policyVersion": "1.0.0.5", "policyName": "vFireWall", "policyScope": "resource=sampleResource,type=sampletype,CLName=sampleCLName", "target_type": "VNF", "target": "genVnfName", "version": "2.0"}]}, "streams_publishes": {"ves_heartbeat": {"dmaap_info": {"topic_url": "http://10.12.5.252:3904/events/unauthenticated.DCAE_CL_OUTPUT/"}, "type": "message_router"}}, "streams_subscribes": {"ves_heartbeat": {"dmaap_info": {"topic_url": "http://10.12.5.252:3904/events/unauthenticated.SEC_HEARTBEAT_INPUT/"}, "type": "message_router"}}}
+ 2018-12-12 12:39:59,129 | __main__ | misshtbtd | fetch_json_file | 254 | INFO | MSHBD:current config logged to : ../etc/download.json
+ 2018-12-12 12:39:59,139 | __main__ | misshtbtd | fetch_json_file | 272 | INFO | ('MSHBT: The json file is - ', '../etc/config.json')
+ 2018-12-12 12:39:59,139 | __main__ | misshtbtd | main | 386 | INFO | ('MSHBD: Creating HB and DBM threads. The param pssed %d and %s', '../etc/config.json', 7)
+ 2018-12-12 12:39:59,142 | __main__ | misshtbtd | create_process | 301 | INFO | ('MSHBD:jobs list is', [<Process(Process-2, started)>, <Process(Process-3, started)>])
+ 2018-12-12 12:39:59,221 | __main__ | misshtbtd | create_update_hb_common | 143 | INFO | MSHBT:Updated hb_common DB with new values
+ /usr/local/lib/python3.6/site-packages/psycopg2/__init__.py:144: UserWarning: The psycopg2 wheel package will be renamed from release 2.8; in order to keep installing from binary please use "pip install psycopg2-binary" instead. For details see: <http://initd.org/psycopg/docs/install.html#binary-install-from-pypi>.
+ """)
+ 2018-12-12 12:39:59,815 | __main__ | htbtworker | <module> | 243 | INFO | HBT:HeartBeat thread Created
+ 2018-12-12 12:39:59,815 | __main__ | htbtworker | <module> | 245 | INFO | ('HBT:The config file name passed is -%s', '../etc/config.json')
+ /usr/local/lib/python3.6/site-packages/psycopg2/__init__.py:144: UserWarning: The psycopg2 wheel package will be renamed from release 2.8; in order to keep installing from binary please use "pip install psycopg2-binary" instead. For details see: <http://initd.org/psycopg/docs/install.html#binary-install-from-pypi>.
+ """)
+ 2018-12-12 12:39:59,931 | __main__ | cbs_polling | pollCBS | 39 | INFO | ('CBSP:Main process ID in hb_common is %d', 7)
+ 2018-12-12 12:39:59,931 | __main__ | cbs_polling | pollCBS | 41 | INFO | ('CBSP:My parent process ID is %d', '7')
+ 2018-12-12 12:39:59,931 | __main__ | cbs_polling | pollCBS | 43 | INFO | ('CBSP:CBS Polling interval is %d', 300)
+ /usr/local/lib/python3.6/site-packages/psycopg2/__init__.py:144: UserWarning: The psycopg2 wheel package will be renamed from release 2.8; in order to keep installing from binary please use "pip install psycopg2-binary" instead. For details see: <http://initd.org/psycopg/docs/install.html#binary-install-from-pypi>.
+ """)
+ 2018-12-12 12:39:59,937 | __main__ | db_monitoring | <module> | 231 | INFO | DBM: DBM Process started
+ 2018-12-12 12:39:59,939 | __main__ | db_monitoring | <module> | 236 | INFO | ('DBM:Parent process ID and json file name', '7', '../etc/config.json')
+ 2018-12-12 12:40:09,860 | __main__ | htbtworker | process_msg | 71 | INFO | ('\n\nHBT:eventnameList values ', ['Heartbeat_S', 'Heartbeat_vFW'])
+ 2018-12-12 12:40:09,860 | __main__ | htbtworker | process_msg | 77 | INFO | HBT:Getting :http://10.12.5.252:3904/events/unauthenticated.SEC_HEARTBEAT_INPUT/group1/1?timeout=15000
+ 2018-12-12 12:40:09,864 | urllib3.connectionpool | connectionpool | _new_conn | 208 | DEBUG | Starting new HTTP connection (1): 10.12.5.252
+ 2018-12-12 12:40:19,968 | __main__ | db_monitoring | db_monitoring | 53 | INFO | DBM: Active DB Monitoring Instance
+ 2018-12-12 12:40:24,259 | __main__ | misshtbtd | main | 331 | INFO | ('MSHBT: hb_common values ', 7, 'RUNNING', '102413e8af4a-mvp-dcaegen2-heartbeat-static', 1544618399)
+ 2018-12-12 12:40:24,260 | __main__ | misshtbtd | main | 335 | INFO | ('MSHBD:pid,srcName,state,time,ctime,timeDiff is', 7, '102413e8af4a-mvp-dcaegen2-heartbeat-static', 'RUNNING', 1544618399, 1544618424, 25)
+ 2018-12-12 12:40:24,260 | __main__ | misshtbtd | main | 351 | INFO | ('MSHBD:config status is', 'RUNNING')
+ 2018-12-12 12:40:24,267 | __main__ | misshtbtd | create_update_hb_common | 143 | INFO | MSHBT:Updated hb_common DB with new values
+ 2018-12-12 12:40:24,810 | urllib3.connectionpool | connectionpool | _make_request | 396 | DEBUG | http://10.12.5.252:3904 "GET /events/unauthenticated.SEC_HEARTBEAT_INPUT/group1/1?timeout=15000 HTTP/1.1" 200 2
+ 2018-12-12 12:40:24,812 | __main__ | htbtworker | process_msg | 92 | INFO | ('HBT:', '[]')
+ 2018-12-12 12:40:34,837 | __main__ | htbtworker | process_msg | 71 | INFO | ('\n\nHBT:eventnameList values ', ['Heartbeat_S', 'Heartbeat_vFW'])
+ 2018-12-12 12:40:34,838 | __main__ | htbtworker | process_msg | 77 | INFO | HBT:Getting :http://10.12.5.252:3904/events/unauthenticated.SEC_HEARTBEAT_INPUT/group1/1?timeout=15000
+ 2018-12-12 12:40:34,839 | urllib3.connectionpool | connectionpool | _new_conn | 208 | DEBUG | Starting new HTTP connection (1): 10.12.5.252
+ 2018-12-12 12:40:39,994 | __main__ | db_monitoring | db_monitoring | 53 | INFO | DBM: Active DB Monitoring Instance
+ 2018-12-12 12:40:49,304 | __main__ | misshtbtd | main | 331 | INFO | ('MSHBT: hb_common values ', 7, 'RUNNING', '102413e8af4a-mvp-dcaegen2-heartbeat-static', 1544618424)
+ 2018-12-12 12:40:49,304 | __main__ | misshtbtd | main | 335 | INFO | ('MSHBD:pid,srcName,state,time,ctime,timeDiff is', 7, '102413e8af4a-mvp-dcaegen2-heartbeat-static', 'RUNNING', 1544618424, 1544618449, 25)
+ 2018-12-12 12:40:49,304 | __main__ | misshtbtd | main | 351 | INFO | ('MSHBD:config status is', 'RUNNING')
+ 2018-12-12 12:40:49,314 | __main__ | misshtbtd | create_update_hb_common | 143 | INFO | MSHBT:Updated hb_common DB with new values
+ 2018-12-12 12:40:49,681 | urllib3.connectionpool | connectionpool | _make_request | 396 | DEBUG | http://10.12.5.252:3904 "GET /events/unauthenticated.SEC_HEARTBEAT_INPUT/group1/1?timeout=15000 HTTP/1.1" 200 2
+ 2018-12-12 12:40:49,682 | __main__ | htbtworker | process_msg | 92 | INFO | ('HBT:', '[]')
+ 2018-12-12 12:40:59,719 | __main__ | htbtworker | process_msg | 71 | INFO | ('\n\nHBT:eventnameList values ', ['Heartbeat_S', 'Heartbeat_vFW'])
+ 2018-12-12 12:40:59,720 | __main__ | htbtworker | process_msg | 77 | INFO | HBT:Getting :http://10.12.5.252:3904/events/unauthenticated.SEC_HEARTBEAT_INPUT/group1/1?timeout=15000
+ 2018-12-12 12:40:59,721 | urllib3.connectionpool | connectionpool | _new_conn | 208 | DEBUG | Starting new HTTP connection (1): 10.12.5.252
+ 2018-12-12 12:41:00,036 | __main__ | db_monitoring | db_monitoring | 53 | INFO | DBM: Active DB Monitoring Instance
+ 2018-12-12 12:41:00,225 | urllib3.connectionpool | connectionpool | _make_request | 396 | DEBUG | http://10.12.5.252:3904 "GET /events/unauthenticated.SEC_HEARTBEAT_INPUT/group1/1?timeout=15000 HTTP/1.1" 200 22
+ 2018-12-12 12:41:00,226 | __main__ | htbtworker | process_msg | 92 | INFO | ('HBT:', '["{\\"test\\":\\"msg\\"}"]')
+ 2018-12-12 12:41:00,226 | __main__ | htbtworker | process_msg | 122 | ERROR | ('HBT message process error - ', KeyError('event',))
+ 2018-12-12 12:41:10,255 | __main__ | htbtworker | process_msg | 71 | INFO | ('\n\nHBT:eventnameList values ', ['Heartbeat_S', 'Heartbeat_vFW'])
+ 2018-12-12 12:41:10,255 | __main__ | htbtworker | process_msg | 77 | INFO | HBT:Getting :http://10.12.5.252:3904/events/unauthenticated.SEC_HEARTBEAT_INPUT/group1/1?timeout=15000
+ 2018-12-12 12:41:10,256 | urllib3.connectionpool | connectionpool | _new_conn | 208 | DEBUG | Starting new HTTP connection (1): 10.12.5.252
+ 2018-12-12 12:41:14,350 | __main__ | misshtbtd | main | 331 | INFO | ('MSHBT: hb_common values ', 7, 'RUNNING', '102413e8af4a-mvp-dcaegen2-heartbeat-static', 1544618449)
+ 2018-12-12 12:41:14,350 | __main__ | misshtbtd | main | 335 | INFO | ('MSHBD:pid,srcName,state,time,ctime,timeDiff is', 7, '102413e8af4a-mvp-dcaegen2-heartbeat-static', 'RUNNING', 1544618449, 1544618474, 25)
+ 2018-12-12 12:41:14,350 | __main__ | misshtbtd | main | 351 | INFO | ('MSHBD:config status is', 'RUNNING')
+ 2018-12-12 12:41:14,359 | __main__ | misshtbtd | create_update_hb_common | 143 | INFO | MSHBT:Updated hb_common DB with new values
+ 2018-12-12 12:41:20,075 | __main__ | db_monitoring | db_monitoring | 53 | INFO | DBM: Active DB Monitoring Instance
+ 2018-12-12 12:41:25,193 | urllib3.connectionpool | connectionpool | _make_request | 396 | DEBUG | http://10.12.5.252:3904 "GET /events/unauthenticated.SEC_HEARTBEAT_INPUT/group1/1?timeout=15000 HTTP/1.1" 200 2
+ 2018-12-12 12:41:25,193 | __main__ | htbtworker | process_msg | 92 | INFO | ('HBT:', '[]')
+ 2018-12-12 12:41:35,222 | __main__ | htbtworker | process_msg | 71 | INFO | ('\n\nHBT:eventnameList values ', ['Heartbeat_S', 'Heartbeat_vFW'])
+ 2018-12-12 12:41:35,222 | __main__ | htbtworker | process_msg | 77 | INFO | HBT:Getting :http://10.12.5.252:3904/events/unauthenticated.SEC_HEARTBEAT_INPUT/group1/1?timeout=15000
+ 2018-12-12 12:41:35,223 | urllib3.connectionpool | connectionpool | _new_conn | 208 | DEBUG | Starting new HTTP connection (1): 10.12.5.252
+ 2018-12-12 12:41:35,838 | urllib3.connectionpool | connectionpool | _make_request | 396 | DEBUG | http://10.12.5.252:3904 "GET /events/unauthenticated.SEC_HEARTBEAT_INPUT/group1/1?timeout=15000 HTTP/1.1" 200 662
+ 2018-12-12 12:41:35,839 | __main__ | htbtworker | process_msg | 92 | INFO | ('HBT:', '["{\\"event\\":{\\"commonEventHeader\\":{\\"startEpochMicrosec\\":1548313727714,\\"sourceId\\":\\"VNFA_SRC1\\",\\"eventId\\":\\"mvfs10\\",\\"nfcNamingCode\\":\\"VNFA\\",\\"timeZoneOffset\\":\\"UTC-05:30\\",\\"reportingEntityId\\":\\"cc305d54-75b4-431b-adb2-eb6b9e541234\\",\\"eventType\\":\\"platform\\",\\"priority\\":\\"Normal\\",\\"version\\":\\"4.0.2\\",\\"reportingEntityName\\":\\"ibcx0001vm002oam001\\",\\"sequence\\":1000,\\"domain\\":\\"heartbeat\\",\\"lastEpochMicrosec\\":1548313727714,\\"eventName\\":\\"Heartbeat_vDNS\\",\\"vesEventListenerVersion\\":\\"7.0.2\\",\\"sourceName\\":\\"SOURCE_NAME1\\",\\"nfNamingCode\\":\\"VNFA\\"},\\"heartbeatFields\\":{\\"heartbeatInterval\\":20,\\"heartbeatFieldsVersion\\":\\"3.0\\"}}}"]')
+ 2018-12-12 12:41:35,839 | __main__ | htbtworker | process_msg | 125 | INFO | ('HBT:Newly received HB event values ::', 'Heartbeat_vDNS', 1548313727714, 'SOURCE_NAME1')
+ 2018-12-12 12:41:35,842 | __main__ | htbtworker | process_msg | 132 | INFO | HBT:vnf_table_2 is already there
+ 2018-12-12 12:41:35,842 | __main__ | htbtworker | process_msg | 183 | INFO | HBT:eventName is not being monitored, Igonoring JSON message
+ 2018-12-12 12:41:39,407 | __main__ | misshtbtd | main | 331 | INFO | ('MSHBT: hb_common values ', 7, 'RUNNING', '102413e8af4a-mvp-dcaegen2-heartbeat-static', 1544618474)
+ 2018-12-12 12:41:39,407 | __main__ | misshtbtd | main | 335 | INFO | ('MSHBD:pid,srcName,state,time,ctime,timeDiff is', 7, '102413e8af4a-mvp-dcaegen2-heartbeat-static', 'RUNNING', 1544618474, 1544618499, 25)
+ 2018-12-12 12:41:39,407 | __main__ | misshtbtd | main | 351 | INFO | ('MSHBD:config status is', 'RUNNING')
+ 2018-12-12 12:41:39,418 | __main__ | misshtbtd | create_update_hb_common | 143 | INFO | MSHBT:Updated hb_common DB with new values
+ 2018-12-12 12:41:40,118 | __main__ | db_monitoring | db_monitoring | 53 | INFO | DBM: Active DB Monitoring Instance
+ 2018-12-12 12:41:45,864 | __main__ | htbtworker | process_msg | 71 | INFO | ('\n\nHBT:eventnameList values ', ['Heartbeat_S', 'Heartbeat_vFW'])
+ 2018-12-12 12:41:45,864 | __main__ | htbtworker | process_msg | 77 | INFO | HBT:Getting :http://10.12.5.252:3904/events/unauthenticated.SEC_HEARTBEAT_INPUT/group1/1?timeout=15000
+ 2018-12-12 12:41:45,865 | urllib3.connectionpool | connectionpool | _new_conn | 208 | DEBUG | Starting new HTTP connection (1): 10.12.5.252
+ 2018-12-12 12:41:46,482 | urllib3.connectionpool | connectionpool | _make_request | 396 | DEBUG | http://10.12.5.252:3904 "GET /events/unauthenticated.SEC_HEARTBEAT_INPUT/group1/1?timeout=15000 HTTP/1.1" 200 661
+ 2018-12-12 12:41:46,483 | __main__ | htbtworker | process_msg | 92 | INFO | ('HBT:', '["{\\"event\\":{\\"commonEventHeader\\":{\\"startEpochMicrosec\\":1544608845841,\\"sourceId\\":\\"VNFB_SRC5\\",\\"eventId\\":\\"mvfs10\\",\\"nfcNamingCode\\":\\"VNFB\\",\\"timeZoneOffset\\":\\"UTC-05:30\\",\\"reportingEntityId\\":\\"cc305d54-75b4-431b-adb2-eb6b9e541234\\",\\"eventType\\":\\"platform\\",\\"priority\\":\\"Normal\\",\\"version\\":\\"4.0.2\\",\\"reportingEntityName\\":\\"ibcx0001vm002oam001\\",\\"sequence\\":1000,\\"domain\\":\\"heartbeat\\",\\"lastEpochMicrosec\\":1544608845841,\\"eventName\\":\\"Heartbeat_vFW\\",\\"vesEventListenerVersion\\":\\"7.0.2\\",\\"sourceName\\":\\"SOURCE_NAME2\\",\\"nfNamingCode\\":\\"VNFB\\"},\\"heartbeatFields\\":{\\"heartbeatInterval\\":20,\\"heartbeatFieldsVersion\\":\\"3.0\\"}}}"]')
+ 2018-12-12 12:41:46,483 | __main__ | htbtworker | process_msg | 125 | INFO | ('HBT:Newly received HB event values ::', 'Heartbeat_vFW', 1544608845841, 'SOURCE_NAME2')
+ 2018-12-12 12:41:46,486 | __main__ | htbtworker | process_msg | 132 | INFO | HBT:vnf_table_2 is already there
+ 2018-12-12 12:41:46,486 | __main__ | htbtworker | process_msg | 136 | INFO | ('HBT:', "Select source_name_count from vnf_table_1 where event_name='Heartbeat_vFW'")
+ 2018-12-12 12:41:46,487 | __main__ | htbtworker | process_msg | 153 | INFO | ('HBT:event name, source_name & source_name_count are', 'Heartbeat_vFW', 'SOURCE_NAME2', 1)
+ 2018-12-12 12:41:46,487 | __main__ | htbtworker | process_msg | 157 | INFO | ('HBT:eppc query is', "Select source_name from vnf_table_2 where event_name= 'Heartbeat_vFW' and source_name_key=1")
+ 2018-12-12 12:41:46,487 | __main__ | htbtworker | process_msg | 165 | INFO | ('HBT: Update vnf_table_2 : ', 0, [('SOURCE_NAME2',)])
+ 2018-12-12 12:41:46,488 | __main__ | htbtworker | process_msg | 173 | INFO | ('HBT: The source_name_key and source_name_count are ', 1, 1)
+ 2018-12-12 12:41:56,508 | __main__ | htbtworker | process_msg | 71 | INFO | ('\n\nHBT:eventnameList values ', ['Heartbeat_S', 'Heartbeat_vFW'])
+ 2018-12-12 12:41:56,508 | __main__ | htbtworker | process_msg | 77 | INFO | HBT:Getting :http://10.12.5.252:3904/events/unauthenticated.SEC_HEARTBEAT_INPUT/group1/1?timeout=15000
+ 2018-12-12 12:41:56,509 | urllib3.connectionpool | connectionpool | _new_conn | 208 | DEBUG | Starting new HTTP connection (1): 10.12.5.252
+ 2018-12-12 12:42:00,160 | __main__ | db_monitoring | db_monitoring | 53 | INFO | DBM: Active DB Monitoring Instance
+ 2018-12-12 12:42:04,456 | __main__ | misshtbtd | main | 331 | INFO | ('MSHBT: hb_common values ', 7, 'RUNNING', '102413e8af4a-mvp-dcaegen2-heartbeat-static', 1544618499)
+ 2018-12-12 12:42:04,456 | __main__ | misshtbtd | main | 335 | INFO | ('MSHBD:pid,srcName,state,time,ctime,timeDiff is', 7, '102413e8af4a-mvp-dcaegen2-heartbeat-static', 'RUNNING', 1544618499, 1544618524, 25)
+ 2018-12-12 12:42:04,456 | __main__ | misshtbtd | main | 351 | INFO | ('MSHBD:config status is', 'RUNNING')
+ 2018-12-12 12:42:04,464 | __main__ | misshtbtd | create_update_hb_common | 143 | INFO | MSHBT:Updated hb_common DB with new values
+ 2018-12-12 12:42:11,463 | urllib3.connectionpool | connectionpool | _make_request | 396 | DEBUG | http://10.12.5.252:3904 "GET /events/unauthenticated.SEC_HEARTBEAT_INPUT/group1/1?timeout=15000 HTTP/1.1" 200 2
+ 2018-12-12 12:42:11,464 | __main__ | htbtworker | process_msg | 92 | INFO | ('HBT:', '[]')
+ 2018-12-12 12:42:20,199 | __main__ | db_monitoring | db_monitoring | 53 | INFO | DBM: Active DB Monitoring Instance
+ 2018-12-12 12:42:21,489 | __main__ | htbtworker | process_msg | 71 | INFO | ('\n\nHBT:eventnameList values ', ['Heartbeat_S', 'Heartbeat_vFW'])
+ 2018-12-12 12:42:21,489 | __main__ | htbtworker | process_msg | 77 | INFO | HBT:Getting :http://10.12.5.252:3904/events/unauthenticated.SEC_HEARTBEAT_INPUT/group1/1?timeout=15000
+ 2018-12-12 12:42:21,491 | urllib3.connectionpool | connectionpool | _new_conn | 208 | DEBUG | Starting new HTTP connection (1): 10.12.5.252
+ 2018-12-12 12:42:29,490 | __main__ | misshtbtd | main | 331 | INFO | ('MSHBT: hb_common values ', 7, 'RUNNING', '102413e8af4a-mvp-dcaegen2-heartbeat-static', 1544618524)
+ 2018-12-12 12:42:29,490 | __main__ | misshtbtd | main | 335 | INFO | ('MSHBD:pid,srcName,state,time,ctime,timeDiff is', 7, '102413e8af4a-mvp-dcaegen2-heartbeat-static', 'RUNNING', 1544618524, 1544618549, 25)
+ 2018-12-12 12:42:29,490 | __main__ | misshtbtd | main | 351 | INFO | ('MSHBD:config status is', 'RUNNING')
+ 2018-12-12 12:42:29,503 | __main__ | misshtbtd | create_update_hb_common | 143 | INFO | MSHBT:Updated hb_common DB with new values
+ 2018-12-12 12:42:36,431 | urllib3.connectionpool | connectionpool | _make_request | 396 | DEBUG | http://10.12.5.252:3904 "GET /events/unauthenticated.SEC_HEARTBEAT_INPUT/group1/1?timeout=15000 HTTP/1.1" 200 2
+ 2018-12-12 12:42:36,433 | __main__ | htbtworker | process_msg | 92 | INFO | ('HBT:', '[]')
+ 2018-12-12 12:42:40,235 | __main__ | db_monitoring | db_monitoring | 53 | INFO | DBM: Active DB Monitoring Instance
+ 2018-12-12 12:42:46,467 | __main__ | htbtworker | process_msg | 71 | INFO | ('\n\nHBT:eventnameList values ', ['Heartbeat_S', 'Heartbeat_vFW'])
+ 2018-12-12 12:42:46,467 | __main__ | htbtworker | process_msg | 77 | INFO | HBT:Getting :http://10.12.5.252:3904/events/unauthenticated.SEC_HEARTBEAT_INPUT/group1/1?timeout=15000
+ 2018-12-12 12:42:46,468 | urllib3.connectionpool | connectionpool | _new_conn | 208 | DEBUG | Starting new HTTP connection (1): 10.12.5.252
+ 2018-12-12 12:42:54,539 | __main__ | misshtbtd | main | 331 | INFO | ('MSHBT: hb_common values ', 7, 'RUNNING', '102413e8af4a-mvp-dcaegen2-heartbeat-static', 1544618549)
+ 2018-12-12 12:42:54,539 | __main__ | misshtbtd | main | 335 | INFO | ('MSHBD:pid,srcName,state,time,ctime,timeDiff is', 7, '102413e8af4a-mvp-dcaegen2-heartbeat-static', 'RUNNING', 1544618549, 1544618575, 26)
+ 2018-12-12 12:42:54,539 | __main__ | misshtbtd | main | 351 | INFO | ('MSHBD:config status is', 'RUNNING')
+ 2018-12-12 12:42:54,555 | __main__ | misshtbtd | create_update_hb_common | 143 | INFO | MSHBT:Updated hb_common DB with new values
+ 2018-12-12 12:43:00,273 | __main__ | db_monitoring | db_monitoring | 53 | INFO | DBM: Active DB Monitoring Instance
+ 2018-12-12 12:43:01,415 | urllib3.connectionpool | connectionpool | _make_request | 396 | DEBUG | http://10.12.5.252:3904 "GET /events/unauthenticated.SEC_HEARTBEAT_INPUT/group1/1?timeout=15000 HTTP/1.1" 200 2
+ 2018-12-12 12:43:01,416 | __main__ | htbtworker | process_msg | 92 | INFO | ('HBT:', '[]')
+ 2018-12-12 12:43:11,439 | __main__ | htbtworker | process_msg | 71 | INFO | ('\n\nHBT:eventnameList values ', ['Heartbeat_S', 'Heartbeat_vFW'])
+ 2018-12-12 12:43:11,439 | __main__ | htbtworker | process_msg | 77 | INFO | HBT:Getting :http://10.12.5.252:3904/events/unauthenticated.SEC_HEARTBEAT_INPUT/group1/1?timeout=15000
+ 2018-12-12 12:43:11,440 | urllib3.connectionpool | connectionpool | _new_conn | 208 | DEBUG | Starting new HTTP connection (1): 10.12.5.252
+ 2018-12-12 12:43:19,592 | __main__ | misshtbtd | main | 331 | INFO | ('MSHBT: hb_common values ', 7, 'RUNNING', '102413e8af4a-mvp-dcaegen2-heartbeat-static', 1544618575)
+ 2018-12-12 12:43:19,593 | __main__ | misshtbtd | main | 335 | INFO | ('MSHBD:pid,srcName,state,time,ctime,timeDiff is', 7, '102413e8af4a-mvp-dcaegen2-heartbeat-static', 'RUNNING', 1544618575, 1544618600, 25)
+ 2018-12-12 12:43:19,593 | __main__ | misshtbtd | main | 351 | INFO | ('MSHBD:config status is', 'RUNNING')
+ 2018-12-12 12:43:19,601 | __main__ | misshtbtd | create_update_hb_common | 143 | INFO | MSHBT:Updated hb_common DB with new values
+ 2018-12-12 12:43:20,309 | __main__ | db_monitoring | db_monitoring | 53 | INFO | DBM: Active DB Monitoring Instance
+ 2018-12-12 12:43:26,383 | urllib3.connectionpool | connectionpool | _make_request | 396 | DEBUG | http://10.12.5.252:3904 "GET /events/unauthenticated.SEC_HEARTBEAT_INPUT/group1/1?timeout=15000 HTTP/1.1" 200 2
+ 2018-12-12 12:43:26,384 | __main__ | htbtworker | process_msg | 92 | INFO | ('HBT:', '[]')
+ 2018-12-12 12:43:36,399 | __main__ | htbtworker | process_msg | 71 | INFO | ('\n\nHBT:eventnameList values ', ['Heartbeat_S', 'Heartbeat_vFW'])
+ 2018-12-12 12:43:36,400 | __main__ | htbtworker | process_msg | 77 | INFO | HBT:Getting :http://10.12.5.252:3904/events/unauthenticated.SEC_HEARTBEAT_INPUT/group1/1?timeout=15000
+ 2018-12-12 12:43:36,401 | urllib3.connectionpool | connectionpool | _new_conn | 208 | DEBUG | Starting new HTTP connection (1): 10.12.5.252
+ 2018-12-12 12:43:40,346 | __main__ | db_monitoring | db_monitoring | 53 | INFO | DBM: Active DB Monitoring Instance
+ 2018-12-12 12:43:44,635 | __main__ | misshtbtd | main | 331 | INFO | ('MSHBT: hb_common values ', 7, 'RUNNING', '102413e8af4a-mvp-dcaegen2-heartbeat-static', 1544618600)
+ 2018-12-12 12:43:44,635 | __main__ | misshtbtd | main | 335 | INFO | ('MSHBD:pid,srcName,state,time,ctime,timeDiff is', 7, '102413e8af4a-mvp-dcaegen2-heartbeat-static', 'RUNNING', 1544618600, 1544618625, 25)
+ 2018-12-12 12:43:44,636 | __main__ | misshtbtd | main | 351 | INFO | ('MSHBD:config status is', 'RUNNING')
+ 2018-12-12 12:43:44,645 | __main__ | misshtbtd | create_update_hb_common | 143 | INFO | MSHBT:Updated hb_common DB with new values
+ 2018-12-12 12:43:51,339 | urllib3.connectionpool | connectionpool | _make_request | 396 | DEBUG | http://10.12.5.252:3904 "GET /events/unauthenticated.SEC_HEARTBEAT_INPUT/group1/1?timeout=15000 HTTP/1.1" 200 2
+ 2018-12-12 12:43:51,343 | __main__ | htbtworker | process_msg | 92 | INFO | ('HBT:', '[]')
+ 2018-12-12 12:44:00,385 | __main__ | db_monitoring | db_monitoring | 53 | INFO | DBM: Active DB Monitoring Instance
+ 2018-12-12 12:44:01,369 | __main__ | htbtworker | process_msg | 71 | INFO | ('\n\nHBT:eventnameList values ', ['Heartbeat_S', 'Heartbeat_vFW'])
+ 2018-12-12 12:44:01,369 | __main__ | htbtworker | process_msg | 77 | INFO | HBT:Getting :http://10.12.5.252:3904/events/unauthenticated.SEC_HEARTBEAT_INPUT/group1/1?timeout=15000
+ 2018-12-12 12:44:01,371 | urllib3.connectionpool | connectionpool | _new_conn | 208 | DEBUG | Starting new HTTP connection (1): 10.12.5.252
+ 2018-12-12 12:44:09,678 | __main__ | misshtbtd | main | 331 | INFO | ('MSHBT: hb_common values ', 7, 'RUNNING', '102413e8af4a-mvp-dcaegen2-heartbeat-static', 1544618625)
+ 2018-12-12 12:44:09,679 | __main__ | misshtbtd | main | 335 | INFO | ('MSHBD:pid,srcName,state,time,ctime,timeDiff is', 7, '102413e8af4a-mvp-dcaegen2-heartbeat-static', 'RUNNING', 1544618625, 1544618650, 25)
+ 2018-12-12 12:44:09,679 | __main__ | misshtbtd | main | 351 | INFO | ('MSHBD:config status is', 'RUNNING')
+ 2018-12-12 12:44:09,687 | __main__ | misshtbtd | create_update_hb_common | 143 | INFO | MSHBT:Updated hb_common DB with new values
+ 2018-12-12 12:44:16,313 | urllib3.connectionpool | connectionpool | _make_request | 396 | DEBUG | http://10.12.5.252:3904 "GET /events/unauthenticated.SEC_HEARTBEAT_INPUT/group1/1?timeout=15000 HTTP/1.1" 200 2
+ 2018-12-12 12:44:16,313 | __main__ | htbtworker | process_msg | 92 | INFO | ('HBT:', '[]')
+ 2018-12-12 12:44:20,422 | __main__ | db_monitoring | db_monitoring | 53 | INFO | DBM: Active DB Monitoring Instance
+ 2018-12-12 12:44:26,338 | __main__ | htbtworker | process_msg | 71 | INFO | ('\n\nHBT:eventnameList values ', ['Heartbeat_S', 'Heartbeat_vFW'])
+ 2018-12-12 12:44:26,338 | __main__ | htbtworker | process_msg | 77 | INFO | HBT:Getting :http://10.12.5.252:3904/events/unauthenticated.SEC_HEARTBEAT_INPUT/group1/1?timeout=15000
+ 2018-12-12 12:44:26,339 | urllib3.connectionpool | connectionpool | _new_conn | 208 | DEBUG | Starting new HTTP connection (1): 10.12.5.252
+ 2018-12-12 12:44:34,721 | __main__ | misshtbtd | main | 331 | INFO | ('MSHBT: hb_common values ', 7, 'RUNNING', '102413e8af4a-mvp-dcaegen2-heartbeat-static', 1544618650)
+ 2018-12-12 12:44:34,721 | __main__ | misshtbtd | main | 335 | INFO | ('MSHBD:pid,srcName,state,time,ctime,timeDiff is', 7, '102413e8af4a-mvp-dcaegen2-heartbeat-static', 'RUNNING', 1544618650, 1544618675, 25)
+ 2018-12-12 12:44:34,721 | __main__ | misshtbtd | main | 351 | INFO | ('MSHBD:config status is', 'RUNNING')
+ 2018-12-12 12:44:34,730 | __main__ | misshtbtd | create_update_hb_common | 143 | INFO | MSHBT:Updated hb_common DB with new values
+ 2018-12-12 12:44:40,448 | __main__ | db_monitoring | db_monitoring | 53 | INFO | DBM: Active DB Monitoring Instance
+ 2018-12-12 12:44:41,287 | urllib3.connectionpool | connectionpool | _make_request | 396 | DEBUG | http://10.12.5.252:3904 "GET /events/unauthenticated.SEC_HEARTBEAT_INPUT/group1/1?timeout=15000 HTTP/1.1" 200 2
+ 2018-12-12 12:44:41,288 | __main__ | htbtworker | process_msg | 92 | INFO | ('HBT:', '[]')
+ 2018-12-12 12:44:51,316 | __main__ | htbtworker | process_msg | 71 | INFO | ('\n\nHBT:eventnameList values ', ['Heartbeat_S', 'Heartbeat_vFW'])
+ 2018-12-12 12:44:51,316 | __main__ | htbtworker | process_msg | 77 | INFO | HBT:Getting :http://10.12.5.252:3904/events/unauthenticated.SEC_HEARTBEAT_INPUT/group1/1?timeout=15000
+ 2018-12-12 12:44:51,317 | urllib3.connectionpool | connectionpool | _new_conn | 208 | DEBUG | Starting new HTTP connection (1): 10.12.5.252
+ 2018-12-12 12:44:59,764 | __main__ | misshtbtd | main | 331 | INFO | ('MSHBT: hb_common values ', 7, 'RUNNING', '102413e8af4a-mvp-dcaegen2-heartbeat-static', 1544618675)
+ 2018-12-12 12:44:59,764 | __main__ | misshtbtd | main | 335 | INFO | ('MSHBD:pid,srcName,state,time,ctime,timeDiff is', 7, '102413e8af4a-mvp-dcaegen2-heartbeat-static', 'RUNNING', 1544618675, 1544618700, 25)
+ 2018-12-12 12:44:59,764 | __main__ | misshtbtd | main | 351 | INFO | ('MSHBD:config status is', 'RUNNING')
+ 2018-12-12 12:44:59,773 | __main__ | misshtbtd | create_update_hb_common | 143 | INFO | MSHBT:Updated hb_common DB with new values
+ 2018-12-12 12:45:00,038 | __main__ | cbs_polling | pollCBS | 52 | INFO | CBSP:ACTIVE Instance:Change the state to RECONFIGURATION
+ 2018-12-12 12:45:00,046 | misshtbtd | misshtbtd | create_update_hb_common | 143 | INFO | MSHBT:Updated hb_common DB with new values
+ 2018-12-12 12:45:00,055 | __main__ | cbs_polling | pollCBS | 39 | INFO | ('CBSP:Main process ID in hb_common is %d', 7)
+ 2018-12-12 12:45:00,055 | __main__ | cbs_polling | pollCBS | 41 | INFO | ('CBSP:My parent process ID is %d', '7')
+ 2018-12-12 12:45:00,055 | __main__ | cbs_polling | pollCBS | 43 | INFO | ('CBSP:CBS Polling interval is %d', 300)
+ 2018-12-12 12:45:00,485 | __main__ | db_monitoring | db_monitoring | 225 | INFO | DBM:Inactive instance or hb_common state is not RUNNING
+ 2018-12-12 12:45:06,290 | urllib3.connectionpool | connectionpool | _make_request | 396 | DEBUG | http://10.12.5.252:3904 "GET /events/unauthenticated.SEC_HEARTBEAT_INPUT/group1/1?timeout=15000 HTTP/1.1" 200 2
+ 2018-12-12 12:45:06,291 | __main__ | htbtworker | process_msg | 92 | INFO | ('HBT:', '[]')
+ 2018-12-12 12:45:16,308 | __main__ | htbtworker | process_msg | 57 | INFO | HBT:Waiting for hb_common state to become RUNNING
+ 2018-12-12 12:45:20,517 | __main__ | db_monitoring | db_monitoring | 225 | INFO | DBM:Inactive instance or hb_common state is not RUNNING
+ 2018-12-12 12:45:24,806 | __main__ | misshtbtd | main | 331 | INFO | ('MSHBT: hb_common values ', 7, 'RECONFIGURATION', '102413e8af4a-mvp-dcaegen2-heartbeat-static', 1544618700)
+ 2018-12-12 12:45:24,806 | __main__ | misshtbtd | main | 335 | INFO | ('MSHBD:pid,srcName,state,time,ctime,timeDiff is', 7, '102413e8af4a-mvp-dcaegen2-heartbeat-static', 'RECONFIGURATION', 1544618700, 1544618725, 25)
+ 2018-12-12 12:45:24,806 | __main__ | misshtbtd | main | 351 | INFO | ('MSHBD:config status is', 'RECONFIGURATION')
+ 2018-12-12 12:45:24,806 | __main__ | misshtbtd | main | 357 | INFO | MSHBD:Reconfiguration is in progress,Starting new processes by killing the present processes
+ 2018-12-12 12:45:24,806 | onap_dcae_cbs_docker_client.client | client | _get_uri_from_consul | 36 | DEBUG | Trying to lookup service: http://10.12.6.50:8500/v1/catalog/service/config_binding_service
+ 2018-12-12 12:45:24,808 | urllib3.connectionpool | connectionpool | _new_conn | 208 | DEBUG | Starting new HTTP connection (1): 10.12.6.50
+ 2018-12-12 12:45:24,810 | urllib3.connectionpool | connectionpool | _make_request | 396 | DEBUG | http://10.12.6.50:8500 "GET /v1/catalog/service/config_binding_service HTTP/1.1" 200 375
+ 2018-12-12 12:45:24,814 | urllib3.connectionpool | connectionpool | _new_conn | 208 | DEBUG | Starting new HTTP connection (1): 10.12.6.50
+ 2018-12-12 12:45:24,820 | urllib3.connectionpool | connectionpool | _make_request | 396 | DEBUG | http://10.12.6.50:10000 "GET /service_component/mvp-dcaegen2-heartbeat-static HTTP/1.1" 200 1015
+ 2018-12-12 12:45:24,821 | onap_dcae_cbs_docker_client.client | client | _get_path | 83 | INFO | get_config returned the following configuration: {"heartbeat_config": {"vnfs": [{"eventName": "Heartbeat_S", "heartbeatcountmissed": 3, "heartbeatinterval": 60, "closedLoopControlName": "ControlLoopEvent1", "policyVersion": "1.0.0.5", "policyName": "vFireWall", "policyScope": "resource=sampleResource,type=sampletype,CLName=sampleCLName", "target_type": "VM", "target": "genVnfName", "version": "2.0"}, {"eventName": "Heartbeat_vFW", "heartbeatcountmissed": 3, "heartbeatinterval": 60, "closedLoopControlName": "ControlLoopEvent1", "policyVersion": "1.0.0.5", "policyName": "vFireWall", "policyScope": "resource=sampleResource,type=sampletype,CLName=sampleCLName", "target_type": "VNF", "target": "genVnfName", "version": "2.0"}]}, "streams_publishes": {"ves_heartbeat": {"dmaap_info": {"topic_url": "http://10.12.5.252:3904/events/unauthenticated.DCAE_CL_OUTPUT/"}, "type": "message_router"}}, "streams_subscribes": {"ves_heartbeat": {"dmaap_info": {"topic_url": "http://10.12.5.252:3904/events/unauthenticated.SEC_HEARTBEAT_INPUT/"}, "type": "message_router"}}}
+ 2018-12-12 12:45:24,821 | __main__ | misshtbtd | fetch_json_file | 254 | INFO | MSHBD:current config logged to : ../etc/download.json
+ 2018-12-12 12:45:24,828 | __main__ | misshtbtd | fetch_json_file | 272 | INFO | ('MSHBT: The json file is - ', '../etc/config.json')
+ 2018-12-12 12:45:24,829 | __main__ | misshtbtd | create_update_db | 281 | INFO | ('MSHBT: DB parameters -', '10.0.4.1', '5432', 'postgres', 'abc', 'hb_vnf')
+ 2018-12-12 12:45:24,840 | __main__ | misshtbtd | create_update_vnf_table_1 | 162 | INFO | MSHBT:Set Validity flag to zero in vnf_table_1 table
+ 2018-12-12 12:45:24,841 | __main__ | misshtbtd | create_update_vnf_table_1 | 191 | INFO | MSHBT:Updated vnf_table_1 as per the json configuration file
+ 2018-12-12 12:45:24,843 | __main__ | misshtbtd | main | 362 | INFO | ('MSHBD: parameters passed to DBM and HB are %d and %s', 7)
+ 2018-12-12 12:45:24,852 | __main__ | misshtbtd | create_update_hb_common | 143 | INFO | MSHBT:Updated hb_common DB with new values
+ 2018-12-12 12:45:26,325 | __main__ | htbtworker | process_msg | 71 | INFO | ('\n\nHBT:eventnameList values ', ['Heartbeat_S', 'Heartbeat_vFW'])
+ 2018-12-12 12:45:26,325 | __main__ | htbtworker | process_msg | 77 | INFO | HBT:Getting :http://10.12.5.252:3904/events/unauthenticated.SEC_HEARTBEAT_INPUT/group1/1?timeout=15000
+ 2018-12-12 12:45:26,326 | urllib3.connectionpool | connectionpool | _new_conn | 208 | DEBUG | Starting new HTTP connection (1): 10.12.5.252
+ 2018-12-12 12:45:40,549 | __main__ | db_monitoring | db_monitoring | 53 | INFO | DBM: Active DB Monitoring Instance
+ 2018-12-12 12:45:41,267 | urllib3.connectionpool | connectionpool | _make_request | 396 | DEBUG | http://10.12.5.252:3904 "GET /events/unauthenticated.SEC_HEARTBEAT_INPUT/group1/1?timeout=15000 HTTP/1.1" 200 2
+ 2018-12-12 12:45:41,268 | __main__ | htbtworker | process_msg | 92 | INFO | ('HBT:', '[]')
+ 2018-12-12 12:45:49,885 | __main__ | misshtbtd | main | 331 | INFO | ('MSHBT: hb_common values ', 7, 'RUNNING', '102413e8af4a-mvp-dcaegen2-heartbeat-static', 1544618725)
+ 2018-12-12 12:45:49,886 | __main__ | misshtbtd | main | 335 | INFO | ('MSHBD:pid,srcName,state,time,ctime,timeDiff is', 7, '102413e8af4a-mvp-dcaegen2-heartbeat-static', 'RUNNING', 1544618725, 1544618750, 25)
+ 2018-12-12 12:45:49,886 | __main__ | misshtbtd | main | 351 | INFO | ('MSHBD:config status is', 'RUNNING')
+ 2018-12-12 12:45:49,894 | __main__ | misshtbtd | create_update_hb_common | 143 | INFO | MSHBT:Updated hb_common DB with new values
+ 2018-12-12 12:45:51,291 | __main__ | htbtworker | process_msg | 71 | INFO | ('\n\nHBT:eventnameList values ', ['Heartbeat_S', 'Heartbeat_vFW'])
+ 2018-12-12 12:45:51,291 | __main__ | htbtworker | process_msg | 77 | INFO | HBT:Getting :http://10.12.5.252:3904/events/unauthenticated.SEC_HEARTBEAT_INPUT/group1/1?timeout=15000
+ 2018-12-12 12:45:51,292 | urllib3.connectionpool | connectionpool | _new_conn | 208 | DEBUG | Starting new HTTP connection (1): 10.12.5.252
+ 2018-12-12 12:46:00,585 | __main__ | db_monitoring | db_monitoring | 53 | INFO | DBM: Active DB Monitoring Instance
+
diff --git a/docs/sections/services/serviceindex.rst b/docs/sections/services/serviceindex.rst
index c500a05..9589a6a 100644
--- a/docs/sections/services/serviceindex.rst
+++ b/docs/sections/services/serviceindex.rst
@@ -16,3 +16,4 @@
./mapper/index.rst
./prh/index.rst
./dfc/index.rst
+ ./heartbeat-ms/index.rst