All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Settings update endpoint
- Send queue too long event max once every hour
- Event slots
- Event per anomaly point instead of anomaly bundle
- Escape of seriesname for events
- Fixed event only when anomalies not empty
- Escape slashes in a series name.
- Add delay correctly to next schedule value when something went wrong
- Use default interval when base job has not ran before
- Fixed better error message when adding series with unknown config template
- Fixed low datapoint count scheduling issue
- Fixed add series by template id (str/int support)
- Fixed priority queue sorting
- Corrected every rid to int type
- Added extra job check status, when base job is not done
- Event no ssl check issue
- Locks created before asyncio.run was called (class variables)
- Removed thing ids and map to
rid
for stored resources
- Scheduling issue and socketserver loop
- Rescheduling series job with delay after not due exception
- Fixed exception raising when nothing is wrong
- Added logging when trying to load series templates.
- Added better logging for siridb exceptions
- When results are queried, return empty object for
job_meta
if it is empty, instead of an empty string
- Copied python 3.10 bisect function, to be work with python 3.9
- Disabled strict ssl for event output calls (webhook)
- Implemented sorted list for schedule checking
- Scheduling issue fixed
- SeriesState: Removed default initialisation away from class attributes
- Decode job meta when returning job results
- Ensure thingsdb upgrades run even when hub version has none set
- Added missing depencency to requirements.txt
- Resolve series endpoint, per job to re-trigger
- Implemented upgrade system for ThingsDB collection
- Working TS scheduling type, without listener dependency
byName
query param to all series endpoints
- Query single series by rid by default, by name possible by setting
?byName=1/true
- All other series endpoints now only accept rid's
- Use ThingsDB things ID's as rid's
- Moved series state to hub memory. Only save to thingsdb on shutdown. Load them from thingsdb at startup
- Moved settings (runtime changable) to thingsdb, hub can be run as stateless
- Removed disk storage
- Removed old job config template routes and handlers
- Analysis region to series state job meta
- Job meta to output
- Implemented generic fields filter for multiple GET endpoints
- Merged output routes and handlers into one with query param to filter by job_type
- Fixed bug with filtering fields for all output endpoint
- Fields filter function, applied to series output
ALL
GET endpoint - Return
job_config_name
andjob_type
when returning all series output
- Series
meta
property for meta data - Fields filter function, applied to series templates GET endpoint
- Series templates
- Series can now be added with a written config or by reference to an existing template
- Changed resource caching by max time since last use to an LRU queue cache
- Job config template resource and endpoints
- Endpoint for fetching all analysis results for a series (for all job types)
- Query param
future
for theapi/series/anomaly_test_series/forecasts
endpoint, to only return points in the future - Added thingsdb support for saving hub state
- Added functionality to add and remove job configs to a series
- Adding series with an empty SeriesState instead of an dict
- Checking online status of client on loading clientlist from disk
- Ignore
requires_job
when config is not found (invalid job name)
- Using
time.time()
instead ofdatetime.datetime.now()
in rest of project
- Accept empty anomalies result
- Typing
- Using
time.time()
instead ofdatetime.datetime.now()
for client timestamps
- Logging hub version on startup
- Save client data to disk
- Update worker data on reconnect
time_precision
support, send to worker in job request.- Implemented new lib for
time_precision
support andvalue_type
forEnodoModuleArgument
- Added exception handling when loading series from disk, ignoring invalid data
- Removed module manager, using clientmanager to fetch current known modules
- Implemented new lib version, to check if module version has been specified with the module name
<module_name>@<module_version>
- Receive only 1 module data
- Implemented new version of lib; Check if a jobs config_name contains any spaces
- Support for adding series with unknown modules
- Known modules in memory only, not saved to disk
- SiriDB config renamed to
siridb_data
- Removed siridb password from get settings base handler output
- Refactored manager locks
- Removed legacy code
- Moved siridb settings to config file, and
max_in_queue_before_warning
andmin_data_points
to the settings file
- Implemented use_max_points property in job configs
- Bug with worker is_going_busy status on reconnect
- Fixed return http status on not found when fetching series details
- Fixed issue with siridb connect when changing settings
- Seperate endpoints for fetching analysis result data
- Cleanup on series removal (siridb analytics results)
- Endpoint as proxy for querying SiriDB data db
- Friendly shutdown to clear queue
- Force shutdown support
- Online status of clients exposed to API
- Changed series config and job config. Job config is now a list of jobs. Not categorised by job type. Forecast, anomaly detection jobs can be in the list multiple times.
- Jobs get an unique identifier
config_name
, which can be set to now theconfig_name
beforehand - Jobs can be silenced by the silenced property in the job config. This makes sure no events will be created for the job's results.
- A job can require an other job the be run beforehand by using the
requires_job
property - Config section
enodo
renamed tohub
because of env prefixENODO_
- Job response handling updated
- Refactored model to be renamed to module
- PEP8 guidelines
- Fixed socketio serialisation of config classes on emit
- SiriDB output db selection/config
- Added realtime property to series config, to control speed of updates from listener to hub for that series
- Arguments underscore to dash
- Using Prophet package instead of fbprophet
- Guard statement adding serie handler
- Fixed siridb connection status update for subscribers socket.io before socket.io is setup
Migration: series config's are changed completely. Removing series.json from the data folder is necessary. You will need to re-add the series after this.
- Support for series management page in the GUI
- Series config is changed. Mainly the job config is setup per job type. This includes
model_params
- Package size is change, removed unnecessary bytes
- Bug with job management
- Model fetching
Migration: config file changed, all siridb related config is in a seperate settings.enodo file in the root of the data folder you give up within the conf file.
- FFE model for faster forcasting and anomaly detection
- Static rules (min/max thresholds)
- Environment variable support
- Siridb connection settings moved to
settings.enodo file
, these settings can be changed during runtime
- Bug with listener handshake
- Cleanup