Граф коммитов

18 Коммитов

Автор SHA1 Сообщение Дата
Devis Lucato 9a67305899 Add options to disable device twins and methods (#331) 2018-12-12 15:35:59 -08:00
Devis Lucato 0ced724464 Add support for storing data in Azure Tables (#327) 2018-12-10 14:59:37 -08:00
Devis Lucato 8fa180f715
Reliability improvements
**Major:**
1. Backoff in case of d2c messaging throttling, stopping telemetry and twin operations
2. Improve perf reducing load on garbage collector and disposing IoT SDK resources
3. Improve device twin management, e.g. try to avoid twin writes when data is not changed, handle more error scenarios
4. Add "development" feature flag to enable/disable expensive runtime checks
5. Change partitions size from 1000 to 5000 devices to reduce the load on storage

**Minor:**
1. Backoff in case of device count throttling (e.g. when reaching 8000 devices in the free SKU)
2. Remove unused daily counter for telemetry
3. Improve perf reducing the number of no-op async tasks
4. Update IoT SDK and other dependencies
5. Clean up logging code, reimplement log filtering (removed in past PRs)
6. Print SDK version at startup
7. Add some scripts for development, see /scripts/development (create/delete simulation, start storage adapter)

**Bug fixes:**
1. Handle and recover from exceptions in the partitioning agent
2. Fix some swallowed errors/exceptions and unnecessary try/catch
3. Share script interpreter between methods and state to ensure device state consistency
4. Fix logged throughput in case of no traffic, i.e. show 0.0 msg/sec, and round value to 3 decimals
5. Fix logging from ConfigData
6. Change the dev endpoint used to delete simulations: don't delete devices (the endpoint was not working) - no user impact, dev only
2018-11-29 17:29:58 -08:00
Devis Lucato 8a1dbb5f7f Stop the application when one of the threads fails (#316)
* Stop the application when one of the threads fails

* Fix and refactor IoT hub connection string handling
2018-11-19 11:44:28 -08:00
sasathy 677c0453f9 Replacing deprecated method 'GetDevicesAsync' with 'GetJobsAsync' (#308) 2018-11-13 21:52:18 -08:00
sasathy 4f90c13b42 Tagging telemetry messages with user agent (#294) 2018-10-29 17:06:57 -07:00
Devis Lucato 31094648bb
When reconnecting a device, make sure the existing client is disposed (#289)
* When reconnecting a device, make sure the existing client is disposed
2018-10-19 16:58:18 -07:00
Peter Felts 8f66a67290 Adding SimulationManager + tests (#263) 2018-10-05 14:39:33 -07:00
Devis Lucato a7c0b021bf Create devices bulk import job (#255) 2018-10-01 10:08:31 -07:00
Hugh Xiong c4a0ce796e Changes to support fetching Iothub metrics (#250)
* Fetch IoTHub metrics
* These metrics are used to display chart on simulation detail page
2018-09-26 18:00:59 -07:00
Peter Felts a2e01dbacb Changes to start consuming new storage library by simulation and some configs (#243) 2018-09-18 22:22:47 -07:00
Devis Lucato a8971a68ee Maintenance and clean up some build warnings (#252)
* Maintenance and clean up build warnings
2018-09-13 10:25:29 -07:00
Devis Lucato 792fdfd345
Add agent for creating and partitioning devices (#251)
Add agent for creating and partitioning devices

1. Add a new agent to the solution, which will be responsible for creating
the devices in IoT hub and for partitioning the list of devices, so
that multiple VMs can each simulate a different set of devices.
The agent is not started yet because the new storage library is not
ready.
2. Refactor concurrency settings and add clustering settings
3. Temporary add retry logic to a couple of flaky tests
2018-09-12 15:37:56 -07:00
sasathy 27ddbbeb67 Webinsights - Sending Diagnostics Data from Microservice to Diagnostics Backend (#236)
* Adding customer insights for different simulation events (start, stop, error)
2018-09-11 15:40:24 -07:00
Avani Patel 4462cd41d7 APIs to Add and Delete devices (#225)
* Support for Add and Delete API for Devices
2018-08-27 11:38:58 -07:00
Devis Lucato c17ce82172
New logger & dependencies upgrade (#232)
* New logger, faster and easier to use
* Upgrade dependencies, just some maintenance and no breaking changes
* Code style cleanup
2018-08-12 15:36:40 -07:00
Devis Lucato 6f0d073713
Performance improvements (#223)
* Refactor code writing twin tags for better performance
* Refactor device properties code for better performance
* Refactor simulation runner for better performance
* Improve connections performance
* Reduce time to start simulation, by creating devices using the same conn string and fetching device from registry only if the authentication fails.
* Limit the number of pending threads attempting to deliver telemetry
* Change all stock device models to use AMQP
* Move SDK timeout setting and other hard coded magic numbers to config file
* Use default timeout value from SDK instead of hardcoding it
* Improve documentation in the configuration file
* Upgrade IoT SDK
* Improve logging in device client
* Reduce noise in the "Info" log level
* When building, remove "deleted files" left over from previous builds
* Improve error detection when creating devices with batch operations
* Recreate device client when the internal AMQP client is disposed (lib bug workaround)
* VS code config update
* Remove simulation version, not used anywhere
* Catch and log when a device model doesn't exist
* Log missing config settings
* Make sure the simulation object is not lost in case of errors while checking for simulation changes
* Limit async tests duration
* Remove IoT hub registry workaround
* Fix boolean conf values parsing
* Remove "en-us" from links in the comments
* Fix invalid parsing of environment variables
2018-07-17 16:37:58 -07:00
Jill Bender b211cb7805 Merge azure-iot-pcs-simulation into master (#197)
* Rewrite to use fewer threads and increase throughput
* Expose simulation metrics in the status endpoint
* When available, return a URL to the Azure Portal metrics of the pre-provisioned IoT Hub
* Allow to run a simulation against a custom IoT Hub, passing the connection string
* Allow to schedule a simulation, defining start and end time
* Improve security by running the service as a non-root user
* Support multiple behavior scripts in a device model
* Support custom device with custom sensors, behavior and frequency
* Allow to override the initial device state when creating a simulation
* When a simulation starts, create all the devices in batches
* When a simulation is deleted, delete also the devices
* Refactor timers to start sending telemetry as soon as possible
* Refactor and improve how simulation scripts access state and properties
* Change stock models to use AMQP (#189)
* Overall improvements to exceptions handling
* Disable SDK retry, and change timeout from default (4 minutes) to 10 seconds
* Do not retry sending telemetry on failure, skip message
* Use IoT Hub S2 SKU limits by default
* Upgrade to .NET Core 2.0.3
* Upgrade Azure IoT SDK: Devices 1.4.1 to 1.6.0, Devices Client 1.5.2 to 1.7.0
* Run simulation engine in the same process used for the web service
* Move docs, move wiki, new API specs, fix scripts for Windows Bash
* Fix the spelling of “ETag” and allow ETag=*
* Add internal scripts for increasing/decreasing/random telemetry
* Add env vars documentation ENVIRONMENT_VARIABLES.md
* Add more optional logging by device and by actor
* Use logging level and other logging settings from configuration
* Adjust unit test precision to mitigate flaky test
* Add system properties to telemetry messages
* Removing the squash flag from Docker scripts
* Use env vars in launchSettings.json
2018-04-12 17:42:46 -07:00