Base Collector
Always check the compatibility matrix below before installing a new version.
Compatibility
Collectors of all versions >= v1.0.0 are compatible with all Factry Historian versions >= v4.0.0, in both directions. However, for certain functionalities, certain minimum versions of the collector and Factry Historian are required. More information is always available in the release notes.
Feature Compatibility Matrix
This is the compatibility matrix for version listed on this page. If you have downloaded a newer version than the one listed on this page please check the release notes of that version.
Feature | Base Collector Version | Factry Historian Version |
|---|---|---|
State Saving | >= v2.5.0 | >= v7.0.0 |
GRPC Streaming (broken) | >= v2.6.0 | >= v7.1.0 |
GRPC Streaming (fixed) | >= v3.3.0 | >= v7.1.0 |
OS, ARCH detection | >= v2.8.0 | / |
Windows 7, 8 support | < 3.0.0 | / |
Measurement Metadata | >= v4.1.0 | >= v8.2.0 |
v4.3.1
Bug fixes
- Fixed a collector hanging on "Initializing collector" at startup, due to a deadlock in the sending of the initial state.
- Fixed every log line being written twice. The log file on Windows, and stdout elsewhere, were registered as an output twice when the collector fetched its settings from Historian at startup.
v4.3.0
Features
- CollectorHandle now exposes the collector state through State() and SetState(). A collector implementation can read and write its persisted state without holding a *Collector.
- CollectorHandle now exposes the cache directory through CachePath.
Changes
- Collector statistics are sent every minute instead of every 30 seconds.
- Updated factry-ca to the certificate renewal commit.
Bug fixes
- Fixed collector state updates being dropped. A collector that keeps a cursor in its state, such as a last update time, lost every second update and that value never reached Historian.
- Fixed a collector staying idle after it was resumed. The stored measurements were re-sent before SetStatus returned, so a collector that rebuilds its measurement state in SetStatus could drop them and then wait for a measurement to change in Historian.
v4.2.0
Features
- The collector now reports a Storage blocked health status when it cannot write to disk, and checks this at startup so storage problems surface immediately instead of silently losing data.
Changes
- Added a GRPCCallTimeout setting (default 2m) so an unresponsive Historian can no longer block the collector indefinitely.
Bug fixes
- A hung or dropped connection to Historian no longer blocks data sending or shutdown.
- Buffered data is removed from disk only after Historian confirms it was received, preventing data loss.
- Fixed a crash when a numeric measurement had a missing or non-numeric value.
- Fixed noise filtering and compression getting stuck after NaN or Inf values.
- Fixed a possible crash when processing points concurrently.
v4.1.3
Bug fixes
- Support TLS connections to a historian served with a publicly trusted certificate (e.g. behind a reverse proxy). Set ALLOW_INSECURE=true for a plaintext connection instead.
v4.1.2
Bug fixes
- Fixed collector self-update not working
v4.1.1
Bug fixes
- Preserve UUID and settings during collector loading
v4.1.0
Features
- Added typed Metadata support on CreateMeasurement. Each property carries an explicit DataType (string, number, or boolean) and a matching Value.
- Decrease the impact of frequently repeated log lines by compressing them into summarized log entries
Changes
- Upgraded to historian-proto v2.0.0. Backwards compatible with older Factry Historian versions as long as Metadata is not populated on CreateMeasurement — sending typed Metadata requires a Historian that speaks historian-proto v2.
Bug fixes
- Resolved an issue where a collector could enter an indefinite restart loop if its update failed
- Fixed a problem in the collector installer where it tried to uninstall the collector service, even if the service wasn't installed before
v4.0.4
Bug fixes
- Fixed an issue where the settings page of a newly created collector would appear empty in Historian, preventing configuration of the collector.
v4.0.3
Bug fixes
- Fixed issue where NoiseFilterMaxTimeBetweenEmits setting was not being applied
v4.0.2
Bug fixes
- Fixed an issue on windows where the working directory was set too late, causing the base path to be incorrect
v4.0.1
Bug fixes
- Fixed migration hooks running again on every restart if current and target versions are the same, which could cause issues with certain migrations that were not designed to run multiple times.
Changes
- Disable collector operations after a collector has been deleted
v4.0.0
Changes
- Refactored the base collector to support better modularity and extensibility for future features.
- Allow using an unencrypted connection to Historian instead of using Historian's self-signed certificate for gRPC communication; allowing deployments behind reverse proxies that handle TLS termination.
v3.5.3
Bug fixes
- Fixed a collector crash when a nil, non-numeric, or non-finite (NaN or Inf) value passed through Noise Filtering or Swinging Door Compression. Such values now pass through unfiltered and leave the compression state intact.
- Fixed a crash that could occur under load when compression state was updated from multiple threads at the same time.
v3.5.2
Bug fixes
- Fixed an issue where a gRPC stream would not be closed properly on error when sending buffered points.
v3.5.1
Bug fixes
- Fixed an issue where 1.5s was not considered a valid duration for certain settings in Swinging Door Compression and Noise Filtering.
v3.5.0
Changes
- Added Swinging Door Compression as a new way to compress data before sending it to Factry Historian.
- Added Noise Filtering as a new way to filter out noisy data before sending it to Factry Historian.
- Added a workaround for Windows systems to avoid issues with log messages being overwritten in Factry Historian due to time precision limitations.
v3.4.0
- Added TimeoutGracePeriod setting that controls how long a collector can attempt a clean shutdown before being forcefully stopped
v3.3.1
- Added validation for CollectionInterval and CollectionOffset settings to ensure they are valid.
v3.3.0
Buffer & streaming
- Use file streams to read buffer disk files
- Use GRPC streams to send buffer disk files to Factry Historian
Other changes
- Added group property to group Ticker, Buffer and Logs settings
v3.2.0
Buffer & Diskqueue
- Don’t write empty buffer files and stop buffer writes when memory is empty
- Stop processing the disk-queue when shutting down
Settings Migration
- Always use the last-fetched collector settings during migration
Windows Installer
- Wait for the target process to exit before completing installation on Windows
v3.1.1
- Fixed polling mechanism getting stuck on stop
v3.1.0
- Changed logic of sending initial measurements to. All measurements fetched from historian or the cache are sent on the Added channel in a non-blocking way. Also, all measurements fetched from historian are sent on the Added channel, not only the Active or Discovered ones, so the behavior is the same as when loading measurements from the cache.
v3.0.0
- Removed support for windows 7 and 8
- Changed handling of health updates to be separate from the logs
v2.8.1
- Fixed polling of collector for updates getting stuck
v2.8.0
- Added detection of the collector's OS and ARCH to base collector, it no longer depends on GOOS and GOARCH environment variables since they not always contain the correct arm version.
v2.7.4
- Improved handling of the collector state to make sure state changes from Factry Historian are not overwritten by the collector
v2.7.3
- Disabled streaming
v2.7.2
- Changed the permissions with which the systemd environment file is saved to 0600
v2.7.1
- Fixed an issue with the cleanup of timers in High Availability mode
v2.7.0
- Added new collector settings for a timestamp range filter
- AllowedFutureDuration: Defines the maximum duration into the future from the current time (collector's perspective) that a source timestamp is considered valid.
- AllowedPast: Defines the earliest allowable point in time for source timestamps. This can be specified either as a fixed timestamp (e.g., 2023-07-01T00:00:00Z) or as a duration in the past relative to the current time (e.g., 1w for 1 week ago).
- BadTimestampAction: Specifies the action to take when a timestamp is found to be outside the allowed ranges. Discard: the point is discarded. SendWithCurrent: the point is sent with the current timestamp and BadTimestampOutOfRange instead.
v2.6.1
- Resolved an issue where collectors with migration functions would create empty settings during new installations.
v2.6.0
- Separated the processing of item types in the buffer, allowing statistics and logs to be handled asynchronously when managing a backlog of points
- Use streaming when sending data to the historian to lower the impact of high latency connections
- Update the default GRPC compression to optimize for speed over compression
v2.5.2
- Fixed an issue with semantic version comparison
v2.5.1
- Properly close the collector when an upgrade is finished
v2.5.0
- Added support for a collector saving it's state to cache and in Historian. The state can be edited in the Historian UI.
- Added support for migration hooks for the collector to run when the collector is upgraded.
v2.4.8
- Fixed windows 7 compatibility issue
- Fixed initial measurements getting zeroed prematurely
v2.4.6
- Fixed base collector repeatedly sending measurements on the Added channel
v2.4.5
- Changed when measurements are first loaded
v2.4.4
- Fixed an issue with HA timer compatibility
v2.4.3
- Free memory for garbage collection after taking items from the buffer
- Added environment variable PPROF_PORT to run profiler if variable is set to a port number greater than 1024
v2.4.2
- Made sure the collector binary is unique for each installed collector
v2.4.0
- Expanded system statistics with: total disk space, total memory and free memory
v2.3.1
- Improved logging during collector upgrade
v2.3.0
- Added functionality for collectors to update themselves
v2.2.0
- Added auto-onboarding of measurements
v2.1.1
Bug fixes
- Fixed sending of collector statistics
v2.1.0
- Added timestamp formatters to generalize the formatting of timestamps as strings
v2.0.0
- Added functionality for discovering measurements
- Removed Deleted channel. Deleted measurements are now sent on the Updated channel with status Deleted
v1.2.21
- Minor bug fixes and improvements
v1.2.20
- Minor bug fixes and improvements
v1.2.19
- Added logging on add/update/delete of measurement
v1.2.18
- Update historian-server to v6.0.5
- Add Datatype to Measurements fetched from Historian
v1.2.17
- Add timestamp parser to base collector
v1.2.16
Bug fixes
- Fixed nil pointer exception in status processing
v1.2.15
Changes
- Added StatusGood setting to accept other statuses as Good status
v1.2.14
Changes
- Improved logging for failover collector
- Better mac compatibility for debugging
v1.2.13
Changes
- Starting the HTTP server for collector failover will retry periodically until the server is started
Changes
- Add a check for Unstable health in collector redundancy
v1.2.11
Changes
- Added a function to get the remaining memory buffer size
v1.2.10
Bug fixes
- Fixed issue with loading the timezone data on windows
v1.2.9
Changes
- Rename default collector binary name to factry-type-collector_version(.exe)
v1.2.8
Changes
- Installer attempts to continue if installing binary returns an error
v1.2.7
Changes
- Added release notes and docs for the base collector