Database specific settings/json, property
precision value is set to either us (for
microsecond) or ns (for nanosecond), data is written, but
cannot be read back. It seems that the issue is on the InfluxDb side: it
works fine in the instance of InfluxDB hosted by InfluxData but does not
work with Docker image version
quay.io/influxdb/influxdb:2.0.0-beta.Refresh Data field in the
Logged Variables table is set to automatic refresh mode, it
is not possible to edit records in that table. The workaround is to turn
data refreshing off before editing records.Logged Variables has too many columns and not all
of them fit well into the screen, and horizontal scrolling is not
available, which causes problems viewing/editing them. Workaround: Use
the “Column Chooser`` button in the right top corner of the table and
select columns that need to be visible or hidden (usually not all
columns need to be visible).Web Server Settings / Number of threads in the
Instance Settings dialog window).Address Space panel it might become empty although there
must be some server nodes. In such case, the web page needs to be
refreshed to view all the servers.Added feature to remotely debug Python scripts used by the variable selector (auto-discovery of the server’s address space). For details please refer the User Manual.
Breaking change on the structure of Python scripts used by the
variable selector. Now scripts will be executed as a main entry point,
without defining a function filter. Input argument is
passed via the variable called inputArgument. The result of
the script must be assigned to the global variable named
result.
In the Instance Settings dialog window added the option
Other Settings / Generate self-signed OPC UA Application Instance Certificate.
When this option is changed, existing application instance certificate
is deleted, and new certificate is generated when next connection to OPC
UA Server is established. If the option value is True,
generated certificate will be self-signed. Otherwise, it will be signed
by the CA certificate.
In the Variable Groups added one more column
Update Variables. If its value is set to true,
then, when the variable group is updated, all variables within that
group in the current configuration will be updated with new values of
options Publishing Interval,
Sampling Interval, Log to TSDB,
Queue Size and Discard Oldest from that
variable group.
Fixed issue: When variables with values - arrays of complex data types are logged into InfluxDB in expanded mode, tags are not composed correctly.
Fixed issue: logging of complex data type values to InfluxDB in JSON format mode does not work.
Fixed issue with license activation in offline mode.
Added environment variables that are used to connect to the
configuration database, as a workaround for the known issue 7:
OVL_CONFIGDB_TYPE, OVL_CONFIGDB_HOST,
OVL_CONFIGDB_PORT, OVL_CONFIGDB_USERNAME,
OVL_CONFIGDB_PWD, OVL_CONFIGDB_PATH. If
defined, they override configuratoin options set via menu
Settings / Connection to the configuration databse.
Updated to use newer versions of some dependancy libraries.
Linux version is built on Ubuntu 2204 (before was built on Ubuntu 1804). Please contact support if the build for Ubuntu 1804 is still required.
Fixed issue with retreiving data type info from OPC UA servers when the server limits number of returned references in browse responses.
Fixed issue: Grafana endpoint does not return numeric values
correctly when option storeAllTypesAsJson of the SQL
time-series database is set to true.
Updated User Manual with sections about how to configure
Infinity Grafana data source plugin.
Fixed memory leak issue (happening when data is logged to SQL database) introduced in version 4.0.4.
For SQL-family of time-series databases added more options in the JSON field:
maxStringSize: Maximum length of string type values.
Values stored as a string are truncated to this length if they are
longer than this maximum limit. Default value is 65535.
storeAllTypesAsJson: If set to true,
values of any type (including numeric values) are stored in the column
named as the value of the option storeJsonValuesInColumn.
This can be used if the database supports JSON type columns, as
json or jsonb types in PostgreSQL/TimescaleDB.
Default value is false.
storeJsonValuesInColumn. This option si used when
the option storeAllTypesAsJson is true. Values of any type
(including numeric values) are stored in the column named as the value
of this option. Default value is string_value. Note that if
the column name is different than default string_value, it
must be created by the user.
Added new options in the
OPC UA Server advanced options dialog, used when OPC UA
server address space is being discovered:
Option maxBrowseRequests to limit number of parallel
Browse or BrowseNext requests sent to the
server. Default value is 5.
Option browseVariablesOnDiscovery: when set to
true, variable nodes are included into the list of nodes
passed to the browse selector script. If the node is selected to browse,
it allows discovery of members of complex type variables. Default value
is set to false.
Note that there is also another way to discover members of complex
type variables: by setting value of the field BrowseMembers
to True in the variable selector script.
When connecting to OPC UA Servers, added a step to read the value
of the node
Objects / Server / Server Capabilities / Operation Limits / MaxNodesPerRead.
If this read value is greater than 0, then it is used if periodic
reading of variable values is configured in OPC UA Server connection
settings, and the value configured by the option
MaxNodesPerReadRequest is 0 or greater than the value read
from the server, to limit the number of nodes read in one Read service
call.
After connecting to the OPC UA Server, values of nodes
Objects / Server / Server Capabilities / Operation Limits / MaxNodesPerRead
and
Objects / Server / Server Capabilities / Operation Limits / maxMonitoredItemsPerCall
are read, and values are stored in the connection advanced options in
fields operationLimit.maxNodesPerRead and
operationLimit.maxMonitoredItemsPerCall respectively. They
are not used in further connections, stored for information
only.
Modified behaviour of variable selector used to auto-discover
variables: - now only nodes with NodeClass attribute equal
to Object or Variable are browsed.
Fixed issue: writing to the TSDB type of SQLite or MS SQL or
PostgreSQL/TimescaleDB might fail if the option
logClientTimetamp is turned on, and the value type is
complex (structure) type.
Fixed issue: OPC UA Server advanced configuration option
maxMonitoredItemsPerSubscription is not applied.
Additionally now after connection to the server, values of the node
Objects / Server / Server Capabilities / Operation Limits / MaxMonitoredItemsPerCallPerRead
is read, and critical message is logged in the SDK log file if value of
this option conflicts with the value read from the server.
Fixed issue: Complex type values cannot be decoded if they have child members of complex type that in turn have members with data type of arrays of basic type values.
Updated company logo image.
[BrowsePath] used in the field
VariableTag of the Logged Variables table is not replaced
by the actual value, causing incorrect MQTT topic composition.OVL_AUTH_TYPE changed to JWT_BUILTIN, to allow
authentication via proxy when this variable is not defined.variable selector fails when used against
some OPC UA Servers.variable selector feature might not
work when the application runs as a Docker conrtainer.Added support to authenticate and authorize the user of the configuration GUI web interface by external Identity Provider. Currently, it is applicable only when the application is accessed via reverse proxy. Tested in setup with nginx, oauth2 proxy, and keycloak.
Fixed issue - configuration GUI does not work when accessed via reverse proxy.
Fixed issue - range of time period stored in the local storage
sometimes is not displayed correctly in the Statistics
dialog window.
Fixed issue - deleting of records in the local storage might fail if the size of the local storage database is close to the maximum. The issue was caused that to delete forwarded records the local storage needs to have some free space. Fixed by automatical expanding of the database.
Fixed issue - retention duration of the InfluxDB database is not detected correctly in case if non-default retention policy is configured for the database.
For InfluxDB, added options:
retention duration - retention duration in the
format of 1w2d3h4m5s, where numbers before w,
d, h, m, s mean
respectively weeks, days, hours, minutes, and seconds. The default value
is an empty value. If this option is empty, then the retention period is
read from the InfluxDB database.
actionForOutOfRangeTimestamps - defines what to do
if a value with a timestamp older than retention duration is being
written. Possible values are:
forward - timestamp will be corrected to the earliest
possible value plus some delta, defined by another option
retentionDelta.skip - those values will be skipped (not written to the
database).retentionDelta - spare time defined in the same
format as retentionDuration. Added to the earliest possible
timestamp (defined by subtracting retention Duration from
current time), when the option
actionForOutOfRangeTimestamps is set to
forward and the out-of-range timestamp is
corrected.
For SQLite type database, the default value for option
insertSqlCommand is changed to
INSERT OR REPLACE, to avoid duplicate records
issues.
Fixed issue: initialization of MySQL database fails preventing logging to it.
Added feature to create HTTPS certificate file if it does not exist. Additionally, also certificate sign request is created and saved in a file. It can be used to sign the certificate by third-party certificate authority.
Implemented feature to limit the number of returned browse
results by the maximum number defined by option
browseTotalReferences. Also, the total duration of time to
browse is limited by the option browseTotalDuration. The
purpose is to keep the GUI responsive in cases when the OPC UA Server
has a large number of nodes under one parent node. If not all nodes are
returned due to these limits, a notification message is displayed. To
add all variables in such cases, the auto-discovery feature can be
used.
Data type of columns Sampling interval and
Publishing interval in Logged Variables and
Variable Groups tables is changed from integer to floating
point, to allow collecting data with rates faster than 1
millisecond.
The default value for column Sampling Interval in
the Logged Variables and Variable Groups
tables is changed from 1000 to -1, which means to sample with the same
rate as the publishing interval.
Added columns Revised sampling interval and
Revised queue size in the Logged Variables
table, so it is easy to check from the GUI what values are actually used
(revised and accepted) by the server.
Modified database initialization SQL scripts for MS SQL and
PostgreSQL to create the index on fields sourceid and
time for the values table only when the table is created
initially. This allows deletion of the index when it is not required, to
improve ingress performance.
Modified data type of the advanced option
readValuesInterval in OPC UA Server node settings from
integer to floating point, to allow periodic reading of variable values
with sub-second intervals.
Added logging of records returned in FindServers and GetEndpoints responses to help troubleshoot connectivity issues.
Fixed issue on composing of topic name from a template having the
[BrowsePath] placeholder.
License terms changed, added section 2.6:
2.6. CUSTOMER should not abuse free-of-charge Community Edition licenses. It is allowed to run only one instance of the application with a Community Edition license at a time per CUSTOMER unless there is written permission obtained from the VENDOR.
Improved license reactivation workflow: now no restart is required to apply new limits on a number of variables, servers, and groups after re-activation.
Updated dependency libraries (OPC UA SDK, boost, paho-mqtt, OpenSSL).
In the Time-series database connection settings dialog window, for MQTT type connections in JSON settings:
added maxBufferedMessages (default value 1000),
maxInflightMessages (default value 100) and
numberOfConnections (default value 1), to fine-tune
performance.
changed the default value for option publishQos from
1 to 0, to provide higher publishing rates.
Fixed issue with the message buffer size reaching max limit.
Fixed issue: The Browse Path column in the
Logged Variables table sometimes might be not correct
(starts with the word undefined).
Added new Auto-Discovery feature to recursively
browse OPC UA Server’s address space and select variables using criteria
defined in Python scripts. The feature can be accessed using new dialog
window Browse and select variables to log opened via
context menu in the Address Space panel. This feature
allows not only adding new variables to log, also can be used to mass
edit or delete existing variable records too.
Improved displaying variable nodes in the
Address Space panel: now they have different color
icons:
Logged Variables
table has icon depending on the value in the column
Log to TSDB:
Log to TSDB is true (that is, values are
logged to the database) - turquise icon.Log to TSDB is false (variables are not
active, not logged to the database) - blue icon.Implemented requirement to allow downloading of application certificate and its issuer certificate with CRL only for authenticated users.
Added 2 more columns in the Logged Variables tables -
Browse Path and Browse Name. Their values for
existing records can be updated using Auto-Discovery
feature.
Added support to use OPC UA variable’s Browse Path
to map to the TSDB schema, For example, MQTT topic can be composed
automatically using Browse Path.
Added hint help text to display when the
Address Space panel or Logged Variables table
has no data to display.
Fixed issue: when multiple OPC UA variables have a reference to the same HA Configuration object by reference of HasHistoricalConfiguration type, and when these variables are expanded, only first variable can be expanded, others cause JavaScript error (duplicate key at attempt to add the node to the Address Space tree). Now references of the HasHistoricalConfiguration type excluded from browse results and not displayed in the Address Space tree. If such object’s child variables need to be logged, they can be added manually.
Adjusted default size of some dialog windows.
User Manual is updated accordingly.
logClientTimetamp. When it is set to true,
client side timestamps (assigned when data value has been received from
OPC UA Server) written to the database, in new column
client_time. This can be helpful in case if the server
might have incorrect system time.Collected values group in
the statistics window do not include values received by periodic calling
of Read requests (this is the case when option
readValuesInterval is UA Server conneciton settings has
value greater than 0.' or invalid UTF-8 strings
causes failure of the write transaction and forwarding data values is
interrupted. Now invalid characters are replaced by symbol
�.In JSON configuration settings for the SQL family of time-series
databases added 2 new options, with the goal to provide access to the
values of columns Display Name and
OPC UA Node Id from the Logged Variables table
when running queries in the time-series database.
writeDisplayName: If set to true, value
of the column Display Name from “Logged Variables” table
for the variable will be written to the time-series database together
with timestamp, status and data value, into column
display_name. Note that this column is not created
automatically, it should be created by the user in the table
values.
copyVariablesTable: If set to true,
then in the database new table variables is created, with
columns id, display_name and
node_id. When the Collector Agent starts, records in it
synchronized with records from the Logged Variables table.
This allows to access display name and OPC UA Node id from the same
database where time-series data is stored.
In JSON configuration settings for the SQL family of time-series
databases added option tableName, which allows to store
data values in the time-series database in a table with custom name
instead of default name values.
Fixed issue: Browsing of the OPC UA Server node from the Address Space panel of the GUI fails if OPC UA node identifier is type of string and contains either ” or ” or ” and ” in it.
numberOfConnections. This number
of connections to the database is created in parallel, each in its own
thread. This allows to write data to SQL databases with rate 100,000
values per second and higher, depending on the database performance and
connection bandwidth.OPC UA SDK Settings / Number of timer threads. It might
require adjustment in high load cases.CreateConfigDb with Python script to create new Collector
Configuration with large number of servers and variables, to use in
pertormance tests. It is added to the ogamma-logger repository at GitHub
too. This folder has also Powershell script to start multiple instances
of the OPC UA Demo server to use in tests.--rescueMode. Contact support
for more details about using of this option.scanAtStart in the instance’s local
storage settings. When this options is turned on, ogamma Visual Logger
for OPC at start-up scans all records stored the local storage, instead
of using value stored in the database statistics area.methods is ignored if both options
readTypeDefinitionsOnConnect and
readXmlTypeDictionaryOnConnect are disabled.How to add OPC UA Server connection settings and logged variables using Python scripts.Logged Variables table added column
Expanded value to display values for variables of complex
data type. By default this column is not visible.usePayloadTemplate and payloadTemplate used to
define custom payload format. Default values are false and
empty string.readTypeDefinitionsOnConnect and
readXmlTypeDictionaryOnConnect are set to
true. Now these options by default set to
false. Note that for existing server connection settings
toggling them off on an can be required to enable support of complex
data types.Store Mode in the Logged Variables table it is
not displayed correctly (shows previous value), even though in the
backend database the value actually is changed.OPC UA ERR type to Open Secure Channel request (typical use
case - when the application instance certificate is not accepted by the
server).newChannelStartingSequenceNumber,
maxUseableSequenceNumber,
startingSequenceNumberAfterMaxUsed,
newChannelRequestId. In most cases default values will
work.readValueMaxEdge option, then rhe server timestamp is used
in logged records. Before, response or request header timestamp was
used, which was causing inconsistent results when server system time is
out of sync.maxSentChainLength, which defines maximum number of
certificates in a chain (including CA certificates) sent to the server
in OpenSecureChannel and CreateSession requests. Default value 0
(unlimited), which results behaviour consistent with the previous
versions.Modified value reported for the standard server variable
Objects/ServerStatus/State when disconnection is detected:
now it is set to value 7, which means communication error. Before the
value was always 0 (Running). This modification allows easier detection
of disconnections from OPC UA Servers and representing connection state
in dashboards.
Modified grafana endpoint: if there are no values for the queried time range, then last value is added to the result set with adjusted tiemstamp, if the time range is later than existing last value’s timestamp. This allows to display last value in dashboards when variable value is not changing.
Fixed issue: Docker container running the application logs segmentation fault error and hangs when communication with OPC UA Server is interrupted and reconnection fails.
Fixed issue: Reconnection with OPC UA Server fails with error BadSecureChannelIdInvalid.
User Manual’s How To section updated with example on interacting with the ogamma Visual Logger for OPC over REST API from Python code.
Implemented fix for the issue: Writing values to the Kafka
database fails when OPC UA Server reports data values with timestamps
earlier than 1/1/1970. The most common use case is when the timestamp is
empty. Added option allowNegativeUnixEpochTime. When this
option is false, then negative Unix timestamp values will
be reset to 0. The default value is false.
Fixed issue: the placeholder [ClientTimestamp] is not set to the correct value in the payload in Kafka/Confluent database when values are read periodically by calling Read service.
Changes applicable when data values are logged to Apache Kafka or Confluent type database:
[ClientTimestamp].timestampFormat to configure format for
timestamps:
default: (existing implementation, UTC formatted string
with space symbol used as delimiter between date and time;ISO 8601: ISO-8601 compliant string, that is using
syumbol ‘T’ as delimiter between data and time, and additional symbol
‘Z’ at the end to indicate UTC timezone.OPC UA: 64-bit integer with the value same as defined
by OPC UA Specification (number of 100 nanoseconds since 1 Jan,
1601).Unix: Unix format time, number of seconds (if option
precision is set to s), or milliseconds (when
option precision is set to value other than
`s) elapsed since 1 Jan 1970.Fixed issue: changes in OPC UA Server configuration settings used in topic/key values require application restart to be applied.
Modified sql script file used to initialize time-series database of PostgreSQL type (removed attributes causing preventing using compression).
For SQL family of time-series databases the option
initScriptName made visible in configuration dialog window,
to allow using of alternative database initialization script
file.
For PostgreSQL type database modified default value of the option
insertPostFix to
ON CONFLICT (sourceid,time) DO NOTHING (this option is used
to eliminate duplicate record errors).
For SQL family of time-series databases added option
writeVariableDataType with default value true.
It is used to alter what data type code is written into the
data_type column: when true,
Added feature to periodically read and log variable values with time interval specificed in server configuration settings, even when they do not change. This is useful when logged values are displayed in graphs, like in Grafana, to provide that at least one value exists within display time window, instead of reporting that no value found.
When InfluxDB is used as a time-series database, now it is possible peridically write application status to the database, with configurable interval, measurement and tags.
acceptAnyCertificate is false.For the SQL family of databases, modified schema of the database
table values where time-series data is stored.
Specifically, added column data_type to store data type
code, and columns int_value and string_value,
to store values of different data types, including arrays and complex
type values. It is recommended to review configuration options for SQL
databases, and set value for the option valueType to
default, which facilitates storing values with the most
accuracy.
Minor improvement of the GUI: now after adding child nodes of a
node from Address Space tree view, Logged Variables table
is updated automatically.
For Confluent and Apache Kafka databases added JSON option
decimalFormatSpecifier, to format double and float type
values written into the database. Default value “” preserves existing
behaviour. Formatting syntax is described here:
https://fmt.dev/latest/syntax.html
Re-built with the updated version of the OPC UA SDK, with fixes for connectivity issues.
Added feature to change icons for server nodes in the
Address Space panel depending on the current state of the
server connection.
Fixed issue occurring in Windows machines with non-English language pack: Connection with OPC UA Servers cannot be established and application crashes when dialog window Tools/Statistics is opened.
For Confluent and Apache Kafka databases fixed the issue: large integer numbers written with lost accuracy (values are rounded, not all digits are written).
Added feature to support writing of values in hexadecimal format
to integer type variables. For example, value formatted as
0xFFFF can be written to a variable of UInt16
type.
Docker container image base OS changed from Ubuntu 18.04 to Ubuntu 20.04. As a result the image has no vulnerabilities with severity level higher than low level.
Fixed issue: when the application is running in Ubuntu 20.04, connection to MS SQL database cannot be established with error that driver file cannot be found.
Added new feature: client-side deadband support. That is: if the
OPC UA Server does not support absolute or percent deadband, then ogamma
Visual Logger for OPC can filter data changes on its own, logging only
those data changes which differ from previously logged values by
configured deadband value. The feature can be enabled at the server
connection level, by setting options
supportsAbsoluteDeadband and
supportsPercentDeadband in the
OPC UA Server Advanced Options dialog window to
false.
Added new feature: support for complex data types. This allows to
log values for variables that has complex data type, like the
ServerStatus node. It is implemented not for all databases
yet, only for InluxDB, Confluent and Apache Kafka. Complex type data
values can be logged in 3 different modes:
Note: Unions are not supported yet.
Added new feature for Confluent and Apache Kafka: now payload can be formatted using payload template.
Fixed issue: when datachange filter with deadband is set, filter trigger is set to STATUS_0 instead of STATUS_VALUE_1, resulting to not getting data changes when variable value is changed in the server.
In InfluxDB database connection settings, field key name for data
values (JSON option fieldKeyNumericValue) now can contain
one or more placeholders. For example, instead of default field key
v, you can use
[ServerTag]-[VariableDisplayName].
For InfluxDB database logging of OPC UA Status values now can be skipped, if the field key for it is set to empty string.
Added support to log variables with node id identifiers of GUID and Opaque type.
Added feature to log arrays (InfluxDB only).
JavaScript code used to display the Main menu is now stored in
separate file mainMenu.js, in original format (not
minimized), to allow its customization (so un-used links can be removed,
or new links can be added).
In the configuration GUI the build number is also displayed additionally to the version number.
Minor changes in the GUI look and feel (layout aligments, added tooltips, etc.)
Fixed issue: application crashes if port number for the instance is modified via GUI.
Fixed issue: real time data status is displayed as Good although the UA Server is not available;
Fixed issue: Log files cannot be viewed via GUI in Windows installations.
Fixed issue: In the time-series database configuration settings dialog window, when the value of the field Type is changed, it is not applied.
For InfluxDB database new JSON option added:
ignoreWriteError. It allows to ignore errors occurred when
data is written to the database and continue writing next data values.
This is intented to be used when some invalid data value was received
from the server, and failure on writing it blocks writing of next
values. Without this option attempts to write this value would be
repeated infinitely. It is expected that normally it will be set to
false, and set to true for short period of
time, just to skip this data value causing an error.
New option is added in the time-series database configuration
settings: replaceEmptyValueWithLastValue. If it is set to
“true”, then in cases when empty value with bad status is received from
the server, the previous value will be stored, so in graphs there will
be no spikes to 0.’. Default value is false.
Fixed issue: time range of stored data values and duration sometimes displayed not correctly in dialog window Tools/Statistics.
For the variable ServerStatus/State, when data change with bad status is received from the OPC UA SDK layer (which usually happens at disconnection due to communication error), empty value is replaced with value 7 (Unknown enum value). This allows connection status to be monitored and recorded into the database.
Updated User Manual to reflect changes. Also, added new section
on installing of the ogamma Visual Logger for OPC as Microsoft Azure IoT
Edge module. And added few useful tips into the How To
section.
For PostgreSQL, new options are added to handle duplicate records
issue. Refer to the new topic about this in the How to
section of the User Manual.
Improved reporting of the connection errors for PostgreSQL/TimescaleDB in the Tools/ Statistics dialog window.
The underlying database engine used as a Local Storage changed and optimized. The number of configuration options for it minimized, the most important ones are folder name and database size. Database file with the configurable initial size is created to guarantee that it will be available to use. The Statistics dialog window is updated to display used database space, currently configured size, and available space in the disk. It is possible to configure the Local Storage to expand automatically when it becomes full. Sife of expansion and maximim size are configurable too.
In the Logged Variables table added page selector
(at the top right corner), so it is possible to quickly move to the
desired page.
Modified implementaiton of the context menu
Log all first-level children in the Address Space panel -
now preliminary browsing / expansion of the node is not required. This
allows to add as many as 100,000 of nodes in a few seconds.
Added more advanced configuration options for OPC UA Server node settings:
maxMonitoredItemsPerSubscription - this option allows
to limit number of monitored items per subscription. This allows to
solve issues caused by messages becoming too large, exceeding encoding
limits supported by OPC UA Servers.For diagnostic/troubleshooting purposes new field is added in the
Logged Variables table header (around central part), which
displays active number of variables with bad status and with good
status.
Added new feature optionally call some methods on the server
after connection. Particularly, this feature can be used to configure
the server before subscribing to monitored items. One of the use cases
is when Unified Automation OPC UA Demo server is used for tests, which
have by default 1000 variables under
Objects/Demo/007_Massfolder_Dynamic folder. Now it is
possible to call its AddNodes method and increase number of
nodes before subscribing to monitored items. For detais refer to the
User Manual, How to section.
Some docker files updated to use newer versions of images. InfluxDB 2 database now is not automatically initialized, needs to be initialized manually via GUI. Some mapped volumes are changed too.
Fixed issue: in case when InfluxDB is used as a time-series
database, and when the server reports data value with timestamp older
than InfluxDB database/bucket retention policy, write operation fails.
Now in those cases timestamp is corrected to be 10 seconds newer than
the oldest possible timestamp. Those cases logged in the log file with
level warning.
Fixed issue: in case when InfluxDB is selected as a database type in the time-series database settings dialog window, logic of the Test Connection button does not detect errors in organization name, bucket name or invalid token.
Fixed issue: in InfluxDB 1.x, when the JSON option
convertNumericValuesToDouble is set to false,
unsigned integer numbers follow by symbol u, which is not
supported in this version and causes write failures (was added in
2.x).
Some dependency libraries updated to newer versions. Particularly, newer version of the OPC UA SDK has fix for deadlock issues, happening when multple requests performed in parallel with large transport layer messages that are transferred in chunks.
Settings/Download Certificate/CA CRL).numberOfConnections is greater than 1.Variable Tag
column values defined in the Logged Variables table) are
not applied if Tags Generation Mode is not set to
Use JSON option "tagsTemplate".Settings / Certificates Management. As a result,
after upgrade to this version, connections to servers in secured mode
would initialially fail. To allow connections, trust to the server
certificate needs to be configured.Edit Advanced Options, which opens separate dialog window
to modify advanced confifuration settings, including certificate
validation rules.Measurement Generation Mode is set to
Use JSON option measurement (for InfluxDB), or field
Topic Name Generation Mode is set to Use JSON option
topicName (for others). It is recommended to revise time-series database
settings before and after upgrade.Variable Tag,
where variable-specific values can be entered, and then it can be
referenced from tagsTemplate option by placeholder
[VariableTag] to compose InfluxDB tags. The column
Tags is not editable now, it will present composed values
of the tags.dnsMap and urlMap, which allow to connect to
servers in cases when host or IP address they return in the endpoint is
not accessible from the machine where ogamma Visual Logger for OPC is
running.Fixed connectivity issues:
Fixed bug: field clientDescription / productUri was not set in the Create Session request.
User Manual is updated, and now, additionally to the online version, it is included in the distribution packages, for easy access from local networks without access to the Internet.
For MQTT type database fixed runtime exception happening in the case when the configuration is modified during unstable connection with the broker.
For InfluxDb, Kafka, Confluent, and MQTT type databases revised
how mapping from OPC UA to measurement/topic name/tags/keys is
implemented: added new selections Use JSON option ... and
Use OPC UA Node Id. It is recommended to check the current
mapping implementation before upgrading to this version and create a
full backup, and after the upgrade verify that mapping is correct. Refer
to the User Manual for complete mapping details.
For InfluxDb type database added JSON option
allowSpaceInMeasurementAndTags which allows InfluxDB
measurement and tags to have space symbol.
For InfluxDB string type values added escaping of special symbols.
InfluxDB field names for value, data type and status made
configurable using new JSON options fieldKeyNumericValue,
fieldKeyStringValue, fieldKeyStatus,
fieldKeyDataType.
InfluxDB default tag key name (n) is made
configurable, using JSON option defaultTagName.
Updated to use the newer version of the JavaScript front-end library.
infinity.min, max, inf,
nan.Added new time-Series Database of Confluent type,
used to connect to instances of Confluent Cloud or Confluent
Enterprise.
Re-built with the latest version of the C++ OPC UA Client SDK, with the following changes/fixes:
Into the GitHub repository of the ogamma Visual Logger for OPC added file docker/kafka.yml, used to run Apache Kafka in a Docker container.
Modified docker-compose configuration files in product’s GitHub page: now they use specific versions of Docker images used in internal tests, instead of latest versions. This is done to eliminate cases when newer versions of images due to changes cause issues on interoperability with ogamma Visual Logger for OPC.
Default key values for Apache Kafka is modified to empty string
(before was “Unknown”). This behaviour can be changed by defining of the
option default_key_value in the Json field.
Fixed issue: writing variable values from Logged Variables table is handled as configuration change (i.e. OVL reconnects to the OPC UA Server).
Updated User Manual: added section for Confluent, and some editing.
Modified default settings in the Json field for Apache Kafka type database connection configuration:
Write Batch Size is used for it. If this option
is defined, then it is used, and value of the field
Write Batch Size will be ignored. In consumer
configuration, value of the field Read Batch Size used for
it.Max Write Interval will be used.Some default values for time-series database configuration settings changed to match with values set in Docker containers.
docker-compose.yml file in product’s GitHub repository is split into multiple files, so now it is possible to run selected subset of containers by changing arguments passed to the docker-compose command.
Key Name Generation Mode is not
visible when it should be according to the selected TSDB type in the
Time-Series database configuration dialog window.Apache Kafka: removed part n= from it.InfluxDB 2.0 and
InfluxDB 1.7 added new option in JSON field:
numberOfConnections, to increase performance of writing
values to the target database. As a result, now it is possible to write
100,000 values per second and more to the instance of InfluxDB database
hosted in cloud, from instance of ogamma Visual Logger for OPC running
in local network.Tools / Statistics.Time-sereis Database Configuration Settings: when a new
record is being edited, and in the field Type database type
is selected, other fields are assigned default values, so no need to
click on the button Reset to defaults.persistType in the JSON field. As a result, the same
in-memory buffer meachanizm is used for this type of database too, as
for others.Producer / message.send.max.retries with default value 0,
to eliminate retries by the underlying library (retries can be handled
at the application level).Apache Kafka, values for the column partition
in the Logged Variables table are not read correctly after
editing them.Password field, in encrypted format. Before it
was saved in the Json field’s option token.PostgreSQL. As a
result, now TimescaleDB/PostgreSQL database can be located not only in
the local network, but also in the cloud too.Collector Agent now can be disabled/enabled in
dialog window used to edit application instances settings.index out of range error reported by
logging subsystem.portainer/portainer, the tool with web GUI to manage Docker
environments. Portainer GUI is available at port 9000.OVL_CONFIG_FILE, which simplifies running multiple
docker containers with ogamma Visual Logger for OPC.Log to TSDB into the table
Variable Groups, for group of variables which should not be
logged into time-series database by default. The aim is to simplify
creation of records in the Logged Variables table which are
used to serve queries from Grafana to read real time data directly from
OPC UA Server.Refresh Data to display last read
values for variables, which are not logged into TSDB. (They are read
directly from OPC UA Server to fulfill queries from Grafana).Status column values in the Logged Variables
table aren’t changed to Bad.Value field in the
Logged Varaibles table).Topic Name Generation Mode and
Key Name Generation Mode set in the GUI ignored, instead
values set in the Database specific settings / Json are
used. Now values set in the Json fieid will be ignored.Logged Variables table value of the Refresh Data
selector widget now is saved between browser sessions.measurement will be
set to d and tag will be set to
n=[variable id]).Reset to defaults to the same settings as in
versions prior 0.8.1 (i.e. measurement will be set to
d and tag will be set to
n=[variable id]).Settings/Instances.Status in
Logged Variables table is writable, should be read
only.Setup/License).Column Chooser to show or hide columns.Help and Links
menu.Setup
menu (currently not enabled though).Fixed issue: was not connecting to InfluxDB in secured mode.