Requirements
Working knowledge of SNMP or JMX interface and their associated tools
System admin knowledge to configure EdgeVis Server start-up parameters
System admin knowledge to configure and secure server ports
Important notes
Performance metrics are disabled by default – EdgeVis Server needs to be restarted to initiate access (see more details below).
Accessing the performance metrics requires additional ports to be opened on the server. To ensure maximum system security, these ports must be protected.
Introduction
EdgeVis Server is critical to the smooth operation of the overall system, therefore it is essential that system performance be monitored and, where necessary, remedial action taken to ensure system reliability and integrity.
To permit an insight into EdgeVis server performance, certain key data points are available (see the tables below). The data taken from these can be used to determine system health.
Note that the majority of the data returned is dynamic and represents the condition of the server at that point in time. There is no trend analysis performed within EdgeVis Server. Any such analysis may be provided by a third party tool.
Enabling performance metrics
Access to the EdgeVis Server performance information is disabled by default. The following action is required by IT systems administrators to permit this information to be accessed.
The EdgeVis Server must be restarted with the access details included as part of the service start-up command (on windows, edit the file C:\Program Files (x86)\EdgeVis Server\conf\wrapper.conf)
One or more ports must be opened on the server
Starting EdgeVis Server with specific parameters (specifying the SNMP and/or JMX interface)
Once enabled, performance data is accessed by one of two methods:
Simple Network Management Protocol (SNMP)
Java Management Extensions (JMX)
Each requires configuration information to be included as part of the EdgeVis Server start-up process.
The process of SNMP/JMX set-up is beyond the scope of this document.
SNMP
Accessing information using this method requires SNMP to be enabled at a system level, which in most circumstances is an IT system admin function. In addition, the following parameters must be added to the EdgeVis Server start-up command.
Parameter | Description |
-Dcom.evs.server.snmp.enabled=true | Enable output from EdgeVis Server |
-Dcom.evs.server.snmp.port=1884 | Define the port to be used for output (1884 in this case) |
Interpretation of SNMP data can be simplified by using a Management Information Base (MIB). To obtain the Digital Barriers MIB, please contact Support.
JMX
Accessing information using this method requires JMX to be enabled at a system level, which in most circumstances is an IT system admin function. In addition, the following parameters must be added to the EdgeVis Server start-up command
Parameter | Description |
-Dcom.evs.server.snmp.enabled=true | Enable output from EdgeVis Server |
-Dcom.sun.management.jmxremote=true | Enable output from EdgeVis Server |
-Dcom.sun.management.jmxremote.port=7091 | Define the port to be used for output (7091 in this case) |
JMX data is presented using MBeans. To view the information, the relevant MBean tree namespaces are com.evs.server (for EdgeVis Server metrics) and com.evs.server.streams (for encoder specifics).
Details of information available in each namespace can be found below:
Performance metrics – EdgeVis Server
System metrics report on the overall health of the EdgeVis Server, some of which may be reset on demand (either via SNMP or JMX). Items that can be reset are highlighted.
Metric | Description |
ViewerCount | The current number of viewers attached to the server |
ViewerCountPeak | The peak number of viewers attached to the server |
ViewerCountPeakTime | The time when the peak number of attached viewers occurred |
EncoderCount | The current number of encoders attached to the server |
EncoderCountPeak | The peak number of encoders attached to the server |
EncoderCountPeakTime | The time when the peak number of attached viewers occurred |
IncomingStreams | The total number of incoming streams |
OutgoingStreams | The total number of outgoing streams |
WatchedOutgoingStreams | The total number of watched outgoing streams |
MuxLinkDataReceived | The total number of bytes received by the server via the Mux protocol |
MuxLinkDataSent | The total number of bytes sent by the server via the Mux protocol |
TcpChannelDataReceived | The total number of bytes received by the server via the TCP protocol |
TcpChannelDataSent | The total number of bytes sent by the server via the TCP protocol |
UdpConnectionManagerDataReceived | The total number of bytes received by the server via the UDP protocol |
UdpConnectionManagerDataSent | The total number of bytes sent by the server via the UDP protocol |
DataTransmitAndReceive | The total number of bytes transmitted and received by the server |
DataTransmitAndReceiveRateMbps | The rate at which data is transmitted and received by the server in mbps. (Please divide by 1000) |
PeakDataTransmitAndReceiveRateMbps | The peak rate (Please divide by 1000) |
PeakDataTransmitAndReceiveRateMbpsTime | The time when the peak occurred |
ByteBufferPoolSize | The current number of ByteBuffers allocated by the com.evs.protocol.BufferPool class |
ByteBuffersAllocated | The total number of ByteBuffers that have been allocated by the com.evs.protocol.BufferPool class |
LoadAverage | The system load average for the last minute |
MemActualFree | The amount of physical memory currently available in bytes, taking into account that committed to paging/swap files |
MemActualUsed | The amount of physical memory currently used in bytes, taking into account that committed to paging/swap files |
MemFree | The amount of physical memory currently available, in bytes |
MemFreePercent | The amount of physical memory currently available, as a percentage |
MemTotal | The amount of actual physical memory, in bytes |
MemUsed | The amount of physical memory currently used, in bytes |
MemUsedPercent | The amount of physical memory currently used, as a percentage |
ProcCpuPercent | The CPU time as a percentage of CPU capacity of the EdgeVis Server |
ProcCpuStartTime | the start time of the EdgeVis Server process (based on milliseconds since January 1 1970) |
ProcCpuSysTime | The time in milliseconds that the EdgeVis Server process has executed in kernel/system mode |
ProcCpuTotalTime | The sum of ProcCpuSysTime and ProcCpuUserTime |
ProcCpuUserTime | The time in milliseconds that the EdgeVis Server process has executed in user mode |
ProcMemResident | The amount of memory in bytes allocated to the EdgeVis Server process and is in RAM |
ProcMemSize | The amount of memory in bytes that the EdgeVis Server process can access, including memory that is swapped out and memory that is from shared libraries |
SampleTime | The time in milliseconds when the data in this table was sampled (based on milliseconds since January 1 1970) |
SysCpuPercent | The "recent” CPU usage for the system. The value is a double between 0.0 and 1.0 |
Performance metrics – encoder specific
This table defines those details that are reported for each and every encoder that is connected to the EdgeVis Server
Metric | Description |
connectionTable | The connection table contains the list of current connections (to and from) the EdgeVis Server |
connectionEntry | A conceptual row representing a connection to or from the EdgeVis Server |
connectionIndex | An index computed by the agent and which uniquely identifies a EdgeVis Server connection |
connectionName | The name of the connection |
connectionBytesRead | The number of bytes read by the connection since creation |
connectionBytesReadDataRate | The current rate in kbps of bytes read by the connection. Please divide by 1000 |
connectionBytesWritten | The number of bytes written by the connection since creation |
connectionBytesWrittenDataRate | The current rate in kbps of bytes written by the connection. Please divide by 1000 |
connectionClient | The client of the stream |
connectionClientID | The client id of the stream |
connectionProtocol | The communications protocol in use on the stream |
connectionSampleTime | The time in milliseconds when the connection data was sampled |
connectionStartTime | The time in milliseconds when the stream was created |
connectionState | The current state of the stream |
connectionStream | The name of the stream source |
connectionStreamID | The stream id for the connection |
connectionType | The type of the connection |
Security
It is highly recommended that access to SNMP and JMX interfaces is protected.
Use cases
With performance metrics enabled, it is possible to determine how the EdgeVis Server is performing:
How many encoders are connected?
How many viewer are connected?
How much data has been used?
FAQ
How can the values be reset?
Using either JMX or SNMP interfaces.Is it possible to see historic data?
Not within EdgeVis Server, however there are several third party applications that are available for this purpose.Can trends be seen?
Not within EdgeVis Server, however there are several third party applications that are available for this purpose.Are performance metrics enabled by default?
No.How can performance metrics be enabled?
See Enabling Performance Metrics above.Is there a performance cost when performance metrics are enabled?
Overall system performance is not affected as the cost is negligible.Can the data be viewed in EdgeVis Server web interface?
Not at this time.Can the data be reset in EdgeVis Server web interface?
Not at this time.