Open chandradeep11 opened 5 years ago
Hi
Any update about this feature enablement? We are observing this issue of socket connection lost between IoT Agent JSON and Orion if my IoT Agent data rate is >5000 records per minute. Any pointers to fix this issue or what will be the limitation on data rate supported by single IoT Agent Pod in a K8S deployment environment? looking for a quick solution or fix.
Thanks & Regards ONR
@Chandradeep-NEC @onrao could you elaborate on which feature are you proposing for IOT Agent? The original issue description is too broad and we should need which mechanism in particular are you proposing to prevent data lost.
@fgalan Observation is that
In my humble opinion what @Chandradeep-NEC is proposing sounds different compared to what you (@onrao) are describing here.
I understand you are facing issues while running on K8s the IoTA when a certain load on the agent (but you are no describing well your infrastructure resources which also limits and the configuration deployed on the IoTA, which really impact to the throughput ). Concerning the list observation you write in your last comment, I can't understand it well.
@fgalan Sorry for the late reply
as per the documentation it is described as follows, MEASURES-002: COULDN\'T SEND THE UPDATED VALUES TO THE CONTEXT BROKER DUE TO AN ERROR: %S There was some communication error connecting with the Context Broker that made it impossible to send the measures. If this log appears frequently, it may be a signal of network problems between the IoTAgent and the Context Broker. Check the IoTAgent network connection, and the configured Context Broker port and host.
ORION-ALARM | Critical | Indicates a persistent error accessing the Context Broker
There is no further info on this alarm/error.
Could you provide a procedure to reproduce the problem in order to analyze what is happening?
FIWARE Stack used
step1: Provisioned the 12 devices in IoT Agent and generated the ACL for each device
step2:Configured VerneMQ to enable the devices ACL and validation accordingly
step4: Simulating 12 devices with data rate @5500 data topics/minute
step5 : Observed Devices data is loss between IoT Agent and Orion CB but both are running fine on VM Node where as IoT Agent log indicates there is an "MEASURE-002 error/ ORION-ALARM due to the Socket open error"
The Step#4 with @5000 records/topics per minute run for 1 hour duration of simulation , then no ERROR or ALARM triggered inside the EKS pod logs.
We need your quick alternative solution and to know any limitation as per the IoT Agent code , where it is not updated in the document
Thank you for your feedback, but note that full detail is needed to precisely reproduce your case. Please see me comments inline.
FIWARE Stack used
- IoT Agent JSON(1.12.0) with MQTT Binding enabled + MQTT Broker
- Orion CB(2.6.0)
- Draco(~1.3.0) All these are deployed as a docker containers deployed as a service in Kubernetes cluster with 2 Nodes of Midrange VM's. All these services are internally connected with service endpoints in the cluster with auto-scaling enabled.
Could you provide the exact Kubernets deployment configuration you are using? (helm charts or whatever)
step1: Provisioned the 12 devices in IoT Agent and generated the ACL for each device
How are you provisioning the devices? Could you provide the curl command you are using (or the equivalent in curl to the command you are using)? How are you generating the ACLs? Could you provide the curl command you are using (or the equivalent in curl to the command you are using)?
step2:Configured VerneMQ to enable the devices ACL and validation accordingly
What is VerneMQ?
step4: Simulating 12 devices with data rate @5500 data topics/minute
How do you simulate this? Could you provide the script program or similar (e.g. JMeter configuration, etc.) you are using?
step5 : Observed Devices data is loss between IoT Agent and Orion CB but both are running fine on VM Node where as IoT Agent log indicates there is an "MEASURE-002 error/ ORION-ALARM due to the Socket open error" The Step#4 with @5000 records/topics per minute run for 1 hour duration of simulation , then no ERROR or ALARM triggered inside the EKS pod logs.
We need your quick alternative solution and to know any limitation as per the IoT Agent code , where it is not updated in the document
@fgalan please find the required details.We need a quick confirmation and way forward for this issue.
Environment Setup:
Error:
Device Simulator: <html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40">
Device_ID | Crane1_1_S | | | | | | | | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- No_of_Sensors | 9 | | | | | | | | Activity_Duration_mins | 240 | | | | | | | | Attribute | Type | Active(Y/N) | Range/Value | minvalue | maxvalue | Unit | Set_No | Frequency_secs | Topic liftingHeight | number | N | Range | 0 | 0 | m | 1 | 1 | /iot/Crane1_1_S/attrs windingSpeed | number | N | Range | 0 | 0 | m/s | 1 | 1 | /iot/Crane1_1_S/attrs load | number | N | Range | 10.4 | 10.4 | N | 1 | 1 | /iot/Crane1_1_S/attrs turningAngle | number | N | Range | 10 | 10 | ° | 1 | 1 | /iot/Crane1_1_S/attrs turningspeed | number | N | Range | 12.5 | 12.5 | °/s | 1 | 1 | /iot/Crane1_1_S/attrs motorCurrent | number | Y | Range | 0 | 10 | A | 1 | 1 | /iot/Crane1_1_S/attrs brake | text | N | Range | 0 | 0 | | 1 | 1 | /iot/Crane1_1_S/attrs hoist | text | N | Range | 9.7 | 9.7 | | 1 | 1 | /iot/Crane1_1_S/attrs hoistCoolingFan | text | N | Range | 0 | 0 | | 1 | 1 | /iot/Crane1_1_S/attrs Device_ID | Crane1_2_S | | | | | | | | No_of_Sensors | 9 | | | | | | | | Activity_Duration_mins | 240 | | | | | | | | Attribute | Type | Active(Y/N) | Range/Value | minvalue | maxvalue | Unit | Set_No | Frequency_secs | Topic liftingHeight | number | N | Range | 0 | 0 | m | 1 | 1 | /iot/Crane1_2_S/attrs windingSpeed | number | N | Range | 0 | 0 | m/s | 1 | 1 | /iot/Crane1_2_S/attrs load | number | N | Range | 10.4 | 10.4 | N | 1 | 1 | /iot/Crane1_2_S/attrs turningAngle | number | N | Range | 10 | 10 | ° | 1 | 1 | /iot/Crane1_2_S/attrs turningspeed | number | N | Range | 12.5 | 12.5 | °/s | 1 | 1 | /iot/Crane1_2_S/attrs motorCurrent | number | Y | Range | 0 | 10 | A | 1 | 1 | /iot/Crane1_2_S/attrs brake | text | N | Range | 0 | 0 | | 1 | 1 | /iot/Crane1_2_S/attrs hoist | text | N | Range | 9.7 | 9.7 | | 1 | 1 | /iot/Crane1_2_S/attrs hoistCoolingFan | text | N | Range | 0 | 0 | | 1 | 1 | /iot/Crane1_2_S/attrs Device_ID | Crane1_3_S | | | | | | | | No_of_Sensors | 9 | | | | | | | | Activity_Duration_mins | 240 | | | | | | | | Attribute | Type | Active(Y/N) | Range/Value | minvalue | maxvalue | Unit | Set_No | Frequency_secs | Topic liftingHeight | number | N | Range | 0 | 0 | m | 1 | 1 | /iot/Crane1_3_S/attrs windingSpeed | number | N | Range | 0 | 0 | m/s | 1 | 1 | /iot/Crane1_3_S/attrs load | number | N | Range | 10.4 | 10.4 | N | 1 | 1 | /iot/Crane1_3_S/attrs turningAngle | number | N | Range | 10 | 10 | ° | 1 | 1 | /iot/Crane1_3_S/attrs turningspeed | number | N | Range | 12.5 | 12.5 | °/s | 1 | 1 | /iot/Crane1_3_S/attrs motorCurrent | number | Y | Range | 0 | 10 | A | 1 | 1 | /iot/Crane1_3_S/attrs brake | text | N | Range | 0 | 0 | | 1 | 1 | /iot/Crane1_3_S/attrs hoist | text | N | Range | 9.7 | 9.7 | | 1 | 1 | /iot/Crane1_3_S/attrs hoistCoolingFan | text | N | Range | 0 | 0 | | 1 | 1 | /iot/Crane1_3_S/attrs Device_ID | Crane2_1_S | | | | | | | | No_of_Sensors | 9 | | | | | | | | Activity_Duration_mins | 240 | | | | | | | | Attribute | Type | Active(Y/N) | Range/Value | minvalue | maxvalue | Unit | Set_No | Frequency_secs | Topic liftingHeight | number | N | Range | 0 | 0 | m | 1 | 1 | /iot/Crane2_1_S/attrs windingSpeed | number | N | Range | 0 | 0 | m/s | 1 | 1 | /iot/Crane2_1_S/attrs load | number | N | Range | 10.4 | 10.4 | N | 1 | 1 | /iot/Crane2_1_S/attrs turningAngle | number | N | Range | 10 | 10 | ° | 1 | 1 | /iot/Crane2_1_S/attrs turningspeed | number | N | Range | 12.5 | 12.5 | °/s | 1 | 1 | /iot/Crane2_1_S/attrs motorCurrent | number | Y | Range | 0 | 10 | A | 1 | 1 | /iot/Crane2_1_S/attrs brake | text | N | Range | 0 | 0 | | 1 | 1 | /iot/Crane2_1_S/attrs hoist | text | N | Range | 9.7 | 9.7 | | 1 | 1 | /iot/Crane2_1_S/attrs hoistCoolingFan | text | N | Range | 0 | 0 | | 1 | 1 | /iot/Crane2_1_S/attrs
If network between IOT agent and Orion (Context Broker) get failed then currently the device measurment sent from Device to IOT agent will be lost. There should be a mechanism support whch will prevent the data loss at IOT agent