Open geofjamg opened 6 months ago
I suspect this is all triggered by the services starting together and overloading the API of the core service. We have done the first state of adding the ability to order the start up, which will help with this. But we need to probably complete that work south that we can stagger the startup of the south services. Or maybe even have a mechanism that automatically rate limits the service startup when we start getting large numbers.
I tried with just one south service configured and when I stop then restart fledge I get more than 300 hundreds http requests across all services just for them to restart (there is non data acquisition). I excluded ping http requests.
POST /fledge/service HTTP/1.1
GET /fledge/service/category/Storage HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
POST /fledge/service/category HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
GET /fledge/service/category HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
POST /fledge/service/category/Advanced/children HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
POST /fledge/interest HTTP/1.1
..POST /fledge/interest HTTP/1.1
.PUT /storage/reading/query HTTP/1.1
PUT /storage/table/streams/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
GET /storage/table/scheduled_processes HTTP/1.1
GET /storage/table/schedules HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
GET /fledge/service/ping HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
.GET /fledge/ping HTTP/1.1
POST /fledge/interest HTTP/1.1
POST /fledge/service/category?keep_original_items=true HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/statistics/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
POST /fledge/service/category/Storage/children HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
POST /fledge/interest HTTP/1.1
POST /fledge/service/category?keep_original_items=true HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
POST /fledge/service/category/Storage/children HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
POST /fledge/interest HTTP/1.1
PUT /fledge/service/category/Storage/plugin HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /fledge/service/category/Storage/readingPlugin HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/asset_tracker/query HTTP/1.1
PUT /storage/table/alerts/query HTTP/1.1
GET /fledge/service?name=Fledge%20Storage HTTP/1.1
GET /fledge/service?name=Fledge%20Storage HTTP/1.1
POST /fledge/service/category?keep_original_items=true HTTP/1.1
GET /fledge/service?name=Fledge%20Storage HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
POST /storage/table/log HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
GET /fledge/service/category HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
POST /fledge/service/category/Utilities/children HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
GET /fledge/service/category/purge_system HTTP/1.1
GET /fledge/service?name=Fledge%20Storage HTTP/1.1
GET /fledge/service?name=Fledge%20Storage HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
GET /fledge/service?name=Fledge%20Storage HTTP/1.1
GET /fledge/service?name=Fledge%20Storage HTTP/1.1
GET /fledge/service?name=Fledge%20Storage HTTP/1.1
GET /fledge/service?name=Fledge%20Storage HTTP/1.1
GET /fledge/service?name=Fledge%20Storage HTTP/1.1
GET /fledge/service?name=Fledge%20Storage HTTP/1.1
GET /fledge/ping HTTP/1.1
PUT /storage/table/statistics/query HTTP/1.1
Fledge started.
GET /fledge/service/ping HTTP/1.1
GET /fledge/service/ping HTTP/1.1
POST /fledge/service/category?keep_original_items=true HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
GET /fledge/service/category/iec104_s1 HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
POST /fledge/service/category?keep_original_items=true HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
POST /fledge/service/category/South/children HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
GET /fledge/service/category/iec104_s1 HTTP/1.1
POST /fledge/service/category?keep_original_items=true HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
POST /fledge/service/category/iec104_s1/children HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
GET /fledge/service/category/iec104_s1Advanced HTTP/1.1
POST /fledge/service HTTP/1.1
POST /storage/table/log HTTP/1.1
POST /fledge/interest HTTP/1.1
POST /fledge/interest HTTP/1.1
GET /fledge/service?name=Fledge%20Storage HTTP/1.1
PUT /storage/schema/fledge/table/statistics/query HTTP/1.1
GET /fledge/service/category/iec104_s1 HTTP/1.1
GET /fledge/service/category/iec104_pivot_filter HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
POST /fledge/service/category?keep_original_items=true HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
POST /fledge/service/category?keep_original_items=true HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
POST /fledge/service/category/iec104_s1%20Filters/children HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
POST /fledge/service/category/iec104_s1/children HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
GET /fledge/service/category/iec104_s1_iec104_pivot_filter HTTP/1.1
POST /fledge/service/category/iec104_s1/children HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
POST /fledge/interest HTTP/1.1
POST /fledge/service/category?keep_original_items=true HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
POST /fledge/service/category/iec104_s1/children HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
PUT /storage/table/category_children/query HTTP/1.1
PUT /storage/table/configuration/query HTTP/1.1
GET /fledge/service/category/iec104_s1Security HTTP/1.1
POST /fledge/interest HTTP/1.1
POST /storage/reading HTTP/1.1
PUT /storage/schema/fledge/table/statistics HTTP/1.1
POST /storage/table/tasks HTTP/1.1
GET /fledge/service?name=Fledge%20Storage HTTP/1.1
PUT /storage/schema/fledge/table/statistics/query HTTP/1.1
POST /storage/schema/fledge/table/statistics_history HTTP/1.1
PUT /storage/schema/fledge/table/statistics HTTP/1.1
PUT /storage/table/tasks HTTP/1.1
POST /storage/table/tasks HTTP/1.1
GET /fledge/service?name=Fledge%20Storage HTTP/1.1
PUT /storage/schema/fledge/table/statistics/query HTTP/1.1
POST /storage/schema/fledge/table/statistics_history HTTP/1.1
PUT /storage/schema/fledge/table/statistics HTTP/1.1
PUT /storage/table/tasks HTTP/1.1
POST /storage/table/tasks HTTP/1.1
GET /fledge/service?name=Fledge%20Storage HTTP/1.1
PUT /storage/schema/fledge/table/statistics/query HTTP/1.1
POST /storage/schema/fledge/table/statistics_history HTTP/1.1
PUT /storage/schema/fledge/table/statistics HTTP/1.1
PUT /storage/table/tasks HTTP/1.1
@MarkRiddoch I found the issue. Simple-Web-Server has a default request timeout of 5s: This is a little bit short when restarting 160 services because the storage server is flooded of request during a few seconds. I tried to increase it and all my services finally restart without any error. Would it be ok for you to be able to configure in fledge the the timeout_request and the timeout_content so that we can adapt it better to use cases?
The hack I did to make it working:
A new configuration item has been added to the Advanced - Storage category that allows this timeout to be set. The default has also been increased. This is in the develop branch and will be in tonights nightly build.
I have 150 south services and 10 north services and when I stop then start fledge I have the following error:
I also have sometimes this kind of crash:
Any idea what could be the issue and if there is a way to workaround ?