[ https://jira.fiware.org/browse/HELP-15571?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jose Manuel Cantera updated HELP-15571: --------------------------------------- Summary: [fiware-stackoverflow] IoT Agents: How to reduce the response time for /v2/entities (was: [fiware-stackoverflow] ORION: How to reduce the response time for /v2/entities) > [fiware-stackoverflow] IoT Agents: How to reduce the response time for /v2/entities > ----------------------------------------------------------------------------------- > > Key: HELP-15571 > URL: https://jira.fiware.org/browse/HELP-15571 > Project: Help-Desk > Issue Type: Monitor > Components: FIWARE-TECH-HELP > Reporter: Backlog Manager > Assignee: Jose Gato Luis > Labels: fiware, fiware-orion > > Created question in FIWARE Q/A platform on 14-03-2019 at 08:03 > {color: red}Please, ANSWER this question AT{color} https://stackoverflow.com/questions/55157273/orion-how-to-reduce-the-response-time-for-v2-entities > +Question:+ > ORION: How to reduce the response time for /v2/entities > +Description:+ > I've deployed the iot stack with docker. These are the used containers: > fiware/orion:2.1.0 > fiware/iotagent-json:1.9.0 > GIVEN: The following device template: > { > "devices": [ > { > "device_id": "sen-n", > "entity_name": "sen-n", > "entity_type": "sensor", > "transport": "HTTP", > "protocol": "IoTA-JSON", > "endpoint": "http://nodered:1880/notification", > "commands": [ > { > "name": "ping", > "type": "command" > } > ], > "attributes": [ > { > "object_id": "status", > "name": "status", > "type": "Text" > } > ], > "static_attributes": [ > { > "name": "name", > "type": "Text", > "value": "Sensor n" > } > ] > } > ] > } > WHEN: Register a large amount of devices on the IoT agent running the following shell script: > # Bash execution example: sudo chmod +x run.sh --> ./run.sh 1100 > # Sh execution example: sh run.sh 1100 > #!/bin/bash > for n in $(seq "$1") > do > echo "Inserting $n device" > curl --request POST \ > --url 'http://localhost:4041/iot/devices' \ > --header 'Content-Type: application/json' \ > --header 'fiware-service: test' \ > --header 'fiware-servicepath: /test' \ > --data '{"devices":[{"device_id":"sen-'$n'","entity_name":"sen-'$n'","entity_type":"sensor","transport":"HTTP","protocol":"IoTA-JSON","endpoint":"http://nodered:1880/notification","commands":[{"name":"ping","type":"command"}],"attributes":[{"object_id":"status","name":"status","type":"Text"}],"static_attributes":[{"name":"name","type":"Text","value":"Sensor '$n'"}]}]}' > done > AND: Trying to get these entities from Orion. > curl --request GET \ > --url 'http://localhost:1026/v2/entities/?limit=1000' \ > --header 'fiware-service: test' \ > --header 'fiware-servicepath: /test' > THEN: The response time is too long, around 15516 ms > > I have checked the Orion command line argument -cprForwardLimit equal to 0 but this causes the execution of commands not to work. It through the following 404 error. > > orion | INFO at 07:32:34 logMsg.h[1832]: Starting transaction from 172.18.0.1:38752/v1/updateContext > orion | DEBUG at 07:32:34 rest.cpp[1414]: Got 417 of payload of 417 bytes > orion | INFO at 07:32:34 rest.cpp[885]: Service Path 0: '/test' > orion | INFO at 07:32:34 connectionOperations.cpp[94]: Database Operation Successful (query: { _id.id: "sen1", _id.type: "sensor", _id.servicePath: { $in: [ /^/test$/ ] } }) > orion | INFO at 07:32:34 connectionOperations.cpp[177]: Database Operation Successful (query: { query: { $or: [ { contextRegistration.entities: { $in: [ { id: "sen1", type: "sensor" }, { type: "sensor", id: "sen1" } ] } }, { contextRegistration.entities.id: { $in: [] } } ], expiration: { $gt: 1552548754 }, contextRegistration.attrs.name: { $in: [ "ping" ] }, servicePath: { $in: [ /^/test$/ ] } }, orderby: { _id: 1 } }) > orion | INFO at 07:32:34 connectionOperations.cpp[177]: Database Operation Successful (query: { query: { $or: [ { contextRegistration.entities: { $in: [ { id: "sen1", type: "sensor" }, { type: "sensor", id: "sen1" } ] } }, { contextRegistration.entities.id: { $in: [] } } ], expiration: { $gt: 1552548754 }, servicePath: { $in: [ /^/test$/ ] } }, orderby: { _id: 1 } }) > orion | DEBUG at 07:32:34 restReply.cpp[75]: Response 6: responding with 237 bytes, Status Code 200 > orion | DEBUG at 07:32:34 restReply.cpp[76]: Response payload: '{"contextResponses":[{"contextElement":{"type":"sensor","isPattern":"false","id":"sen1","attributes":[{"name":"ping","type":"command","value":""}]},"statusCode":{"code":"404","reasonPhrase":"No context element found","details":"sen1"}}]}' > orion | INFO at 07:32:34 logMsg.h[1916]: Transaction ended > So, is there a way to reduce this response time without breaking the command execution? -- This message was sent by Atlassian JIRA (v6.4.1#64016)
You can get more information about our cookies and privacy policies clicking on the following links: Privacy policy Cookies policy