ScadaMods Kepserver

Supported OS Windows

marketplace

Overview

The Scadamods Kepserver integration monitors any changes to channels, devices, and tags. The integration provides a stream of the events from the Kepserver Event log, letting you see the events in real-time on your Datadog dashboard. Through Kepserver’s Configuration API, this integration gathers details that allow you to verify the configuration of channels, devices, and tags implemented on each Kepserver instance.

Data Collected

Metrics

scadamods.kepserver.configured.devices.count
(gauge)
The count of all tags configured in the devices
scadamods.kepserver.configured.channels.count
(gauge)
The count of all tags configured in the channels
scadamods.kepserver.configured.tags.count
(gauge)
The count of all tags configured in the project.
scadamods.kepserver.system.total_tag_count
(gauge)
The _TotalTagCount tag indicates the total number of tags that are currently being accessed. These tags can be active or inactive.Note:This count does not represent the number of tags configured in the project.
scadamods.kepserver.system.active_tag_count
(gauge)
The _ActiveTagCount tag indicates the number of tags that are currently active in the server.
scadamods.kepserver.system.client_count
(gauge)
The _ClientCount tag indicates the number of clients that are currently connected to the server.
scadamods.kepserver.statistics.successful_reads
(gauge)
The _SuccessfulReads tag contains a count of the number of reads this channel has completed successfully since the start of the application or since the last time the _Reset tag was invoked. This tag is formatted as unsigned 32-bit integer and will eventually rollover. This tag is read only.
scadamods.kepserver.statistics.successful_writes
(gauge)
The _SuccessfulWrites tag contains a count of the number of writes this channel has completed successfully since the start of the application or since the last time the _Reset tag was invoked. This tag is formatted as an unsigned 32-bit integer and will eventually rollover. This tag is read only.
scadamods.kepserver.statistics.failed_reads
(gauge)
The _FailedReads count of the num of reads this chan. has failed to complete since the start of app or since _Reset tag was invoked. Incremented after the channel has failed the request. This tag is formatted as an unsigned 32-bit integer and will eventually rollover. This tag is read only.
scadamods.kepserver.statistics.failed_writes
(gauge)
The _FailedWrites count of the num of writes this chan. has failed to complete since the start of the app _Reset tag was invoked. Incremented after the channel has failed the request. This tag is formatted as unsigned 32-bit integer and will eventually rollover. This tag is read only.
scadamods.kepserver.statistics.rx_bytes
(gauge)
The _RxBytes tag contains a count of the number of bytes the channel has received from connected devices since the start of the application or since the last time the _Reset tag was invoked. This tag is formatted as unsigned 32-bit integer and will eventually rollover. This tag is read only.
scadamods.kepserver.statistics.tx_bytes
(gauge)
The _TxBytes tag contains a count of the number of bytes the channel has sent to connected devices since the start of the application or since the last time the _Reset tag was invoked. This tag is formatted as unsigned 32-bit integer and will eventually rollover. This tag is read only.
scadamods.kepserver.statistics.max_pending_reads
(gauge)
The _MaxPendingReads tag contains a count of the maximum number of pending read requests for the channel since the start of the application (or the _Reset tag) was invoked. This tag is formatted as an unsigned 32-bit integer. The tag is read only.
scadamods.kepserver.statistics.max_pending_writes
(gauge)
The _MaxPendingWrites tag contains a count of the maximum number of pending write requests for the channel since the start of the application (or the _Reset tag) was invoked. This tag is formatted as an unsigned 32-bit integer. The tag is read only.
scadamods.kepserver.statistics.next_read_writes
(gauge)
The _NextReadPriority is a channel-level system tag that reflects the priority level of the next read in the channel's pending read queue. Possible values are -1: No pending reads. 0:next read is a res of a schedule-level demand poll or explicit read from a client. 1 - n: next read is a result of scheduled read.
scadamods.kepserver.statistics.pending_reads
(gauge)
The _PendingReads tag contains a count of the current pending read requests for the channel. This tag is formatted as an unsigned 32-bit integer. The tag is read only.
scadamods.kepserver.statistics.pending_writes
(gauge)
The _PendingWrites tag contains a count of the current pending write requests for the channel. This tag is formatted as an unsigned 32-bit integer. This tag is read only.
scadamods.kepserver.devices.seconds_in_error
(gauge)
The _SecondsInError tag is a DWord tag that displays the number of seconds since the device entered an error state. This tag displays 0 when the device is not in an error state.

Events

The Kepserver check sends all event logs provided by the Kepserver event log API.

Service Checks

scadamods_kepserver.can_connect:
Returns CRITICAL if the Agent is unable to connect to and collect metrics from the monitored Kepserver instance, otherwise returns OK.

Troubleshooting

1. Error Unauthorized Access

Symptom: The Kepserver check reports CRITICAL when it is unable to connect to the Kepserver instance.

Logs: The Kepserver check logs the following error message: Failed to retrieve Kepserver Event Logs: 401 Client Error: Unauthorized for url: http://127.0.0.1:57412//config/v1/event_log?

Recommendations:

  • Verify that the Kepserver instance is running.
  • Confirm that the user has access to the Kepserver API endpoint by going to http://127.0.0.1:57412//config/v1/event_log? url in a web browser.
  • If the user does not have access to the Kepserver API endpoint, create a user with the appropriate permissions.
  • Navigate to the Kepserver Administration page and create a new user with the appropriate permissions.
  • Confirm the Configuration API Service is enabled on the Kepserver instance, by navigating to the tab and selecting ‘Yes’ for the ‘Enable’ option.
  • Confirm the Kepserver API endpoint is the same as the ‘View in browser’ link on the Configuration API Services tab.
  • Confirm that the username and password is correct in the scadamods_kepserver.d/conf.yaml file.

2. OPC-UA Metric Collection Failed

Description: The OPC-UA metrics come from the system diagnostics feature of Kepserver. The system diagnostics feature is disabled by default and requires users to enable it under the OPC-UA properties for the project. The ’node_id’ is the reference to the server that the OPC-UA metrics are collected from. If the server is not running, the ’node_id’ will fail to be found by the client. The ’node_id’ is defaulted to ’ns=2’ for the Kepserver instance. If this needs to be modified contact support@scadamods.com.

Symptom: The Kepserver check does not capture OPC-UA metrics for system diagnostics.

Logs: The Kepserver check logs the following error message:

OPC UA metric request failed: "The node id refers to a node that does not exist in the server address space."(BadNodeIdUnknown)

Recommendations:

  • Verify that the Kepserver has System Diagnostics enabled.
  • Navigate to the Kepserver Project Properties page and select the OPC-UA tab. Verify that the Log diagnostics option is set to Yes.

Need more help? Contact Datadog support, or support@scadamods.com.

Support

For support or feature requests, contact Scadamods:


Made with Industrial 💪 Strength

This isn’t the integration you’re looking for? Missing a critical feature for your organization? Drop us a note, and we’ll build it!!

Further Reading

Additional helpful documentation, links, and articles:


This application is made available through the Marketplace and is supported by a Datadog Technology Partner. Click Here to purchase this application.