Collectd Parser
After configuring a remote host to collect and transmit system information as detailed in collectd configuration, create a UDPReader and select this parser to use the data in an application.
This parser has a single property, authfilelocation
. If the remote host has security enabled for collectd, specify the path (relative to the Striim program directory) and name of the authentication file, otherwise leave the property blank. See "Server setup" in https://collectd.org/wiki/index.php/Networking_introduction for more information.
Collectd Parser output fields
The output type is CollectdEvent. Its fields are:
field name | type |
---|---|
data | varies depending on the |
hostName | string |
intervalHighResolution | long |
message | string |
pluginInstanceName | string |
pluginName | string |
severity | long |
time | DateTime |
timeHighResolution | DateTime |
timeInterval | long |
typeInstanceName | string |
typeName | string |
The fields correspond to collectd part types (see https://collectd.org/wiki/index.php/Binary_protocol#Part_types). data
corresponds to the Values part type.
Collectd Parser example
The following example application receives CPU metrics and computes min, max, last, and average values for each one-minute block of data:
CREATE APPLICATION collectd; CREATE SOURCE CollectdSource USING UDPReader ( IpAddress:'127.0.0.1', PortNo:'25826' ) PARSE USING CollectdParser () OUTPUT TO CollectdStream; CREATE TYPE CpuUsageType ( hname String, tStamp DateTime, tInstanceName String, pInstanceName Integer, cUsage double ); CREATE STREAM CpuUsageStream OF CpuUsageType; CREATE CQ CpuUsage INSERT INTO CpuUsageStream SELECT hostname, TimeHighResolution, TypeInstanceName, TO_INT(PluginInstanceName), TO_DOUBLE(data[0]) FROM CollectdStream WHERE PluginName = 'cpu'; CREATE JUMPING WINDOW CpuUsageWindow OVER CpuUsageStream KEEP WITHIN 1 MINUTE ON tStamp; CREATE TYPE CpuStatisticsType ( cpuName Integer, cpuType String, min double, max double, last double, avg double ); CREATE STREAM CpuStatisticsStream OF CpuStatisticsType; CREATE CQ CpuStatisticsCQ INSERT INTO CpuStatisticsStream SELECT x.pInstanceName, x.tInstanceName, MIN(x.cUsage), MAX(x.cUsage), x.cUsage, AVG(x.cUsage) FROM CpuUsageWindow x GROUP BY x.pInstanceName,x.tInstanceName; CREATE TARGET CpuStatisticsDump USING SysOut(name:Stat) INPUT FROM CpuStatisticsStream; END APPLICATION collectd;
The output would look like this:
Stat: CpuStatisticsType_1_0{ cpuName: "6" cpuType: "system" min: 252157.0 max: 252312.0 last: 252312.0 avg: 252236.5 }; Stat: CpuStatisticsType_1_0{ cpuName: "7" cpuType: "user" min: 33387.0 max: 33393.0 last: 33393.0 avg: 33390.166666666664 };