Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement Lite mode health score #132

Merged
merged 6 commits into from Mar 6, 2021

Conversation

leigh-johnson
Copy link
Member

@leigh-johnson leigh-johnson changed the base branch from main to release-v0.5.0 March 6, 2021 05:58
@leigh-johnson leigh-johnson merged commit 00b518e into release-v0.5.0 Mar 6, 2021
@leigh-johnson leigh-johnson deleted the issue-108-defect-alert-dataframe branch March 6, 2021 05:58
leigh-johnson added a commit that referenced this pull request Mar 6, 2021
* Bump version: 0.4.3 → 0.5.0

* Add file log handler (#115)

* remove multiplex/multiprocess log handler

* remove some cruft

* add file handler in on_after_startup callback

* adjust logger var

* Receive new model version via device config topic (#117)

* replace fat tf binary with tflite runtime

* fixup tflite_runtime install_requires str

* first pass on device config update handler

* Refactor WorkerManager (#119)

* refactor WorkerManager to use mixins; update unit tests to pass against mixin format (in preparation for testing each mixin)

* add octoprint_nanny.workers module

* rm first pass on octoprint_nanny/workers.py (moved to octoprint_nanny/workers/*.py)

* fix settings module loggert

* adjust config topic property in MQTTClient

* finish first pass on refactoring workers into octoprint_nanny/workers/* modules

* test_websocket.py tests passing

* test passing: test_mqtt_send_queue_valid_octoprint_event

* test passing for test_telemetry_queue_send_loop_bounding_box_predict

* test passing test_mqtt_receive_queue_valid_octoprint_event

* fix trace decorators in WorkerManager class

* fix beeline.traced decorators in plugins module

* server boots

* add passing test_handle_config_update

* use 15m keepalive in mqtt client

* UAT device registration

* verify written keys against checksum (#121)

* Switch to 256-bit ECDSA algorithm (#123)

* label worker threads

* remove image transform (included in input op)

* fix surprising logging behavior

* fixup mqtt client init flow

* finish upgrading to es256 encryption

* Remove calibration from telemetry messages (#124)

* add rc_ prefix to event strings originating from webapp RemoteControlCommand.CommandChoices enum

* persist calibration on settings save

* remove calibration from every inference message

* Add Active Learning & Lite monitoring modes (#125)

* add front-end Monitoring Settings section, with default values reflecting current functionality

* move PredictWorker to workers.monitoring module

* clean up imports

* add passing test test_share_lite_webcam_enabled

* add passing test for test_share_lite_webcam_disabled

* add call args asserts

* refactor to use TypedDict structs for msgs

* refactor TFLite predictor to filter on score threshold and bounding box calibration prior to publishing via mqtt

* fix failing test_manager tests

* fix failures in test_predictor

* tests passing ✅

* add passing test for  test_active_learning_mode

* clean up cruft, fix OctoPrintNanny.monitoring_active backend state

* clean up

* STRING SANITY: create constants module + test_constants for PluginEvents, RemoteCommands, and other constant values

* FlatBuffer serialization, pytest benchmarks (#126)

* read events from print_nanny_client enum

* fixup test fail

* get tests passing w/ enum singletons

* check in benchmarks tests

* first pass on flatbuffer message serializer

* add active learning flatbuffer benchmarks

* finish benchmark tests

* fix raw message builder

* fixup event names to match enums

* wip; something is passing a prediction with ndim=2

* check in types module

* implement octoprint_nanny.types.Image dataclass

* merge types and constants modules

* implement BoundingBoxPredcition dataclass

* add test case test_lite_mode_webcam_enabled_zero_prediction_results_uncalibrated

* add test case test_lite_mode_webcam_enabled_zero_prediction_results_calibrated

* add test case test_lite_mode_webcam_enabled_with_prediction_results_calibrated

* fix msg mutation bug

* implement Metadata fb serializer

* typo

* update mqtt client with active learning topic

* fixup payload deliver to octoprint ui

* sync profiles on user login (#128)

* update print-nanny-client pin for ci/cd

* Sync device metadata on login (#130)

* sync octoprint device metadata on client login

* update aiohttp

* Create DefectAlert when lite mode health cumulative health score trend decreases (#131)

* fixup honeycomb tracing for predict pool

* first pass on print_is_healthy fn

* add local polyfit for lite loop

* create DefectAlert when lite mode health score trend decreases

* Implement Lite mode health score (#132)

* add pyarrow to third_party_wheel_map

* dramatically simplify flatbuffer schemas

* implement updated telemetry message schema

* fix failing monitoring tests

* non-benchmark tests are green

* add MonitoringFrame type

* Add websocket reconnect (#134)

* backoff on websockets.exceptions.ConnectionClosedError

* add jitter to rest client backoffs

* fix exception in setup.py

* typo

* send image bytes over ws wire, fix flatbuffers pin

* do not fail build on coverage upload failure
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant