You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.2 KiB
Lua
59 lines
1.2 KiB
Lua
-- Copyright (c) 2011, Robert G. Jakabosky <bobby@sharedrealm.com> All rights reserved.
|
|
|
|
local tap = require"zmq.ws.tap"
|
|
|
|
local format = string.format
|
|
|
|
local stats_tap_mt = {}
|
|
stats_tap_mt.__index = stats_tap_mt
|
|
|
|
function stats_tap_mt:packet(pinfo, tvb, tree, data)
|
|
-- count all ZeroMQ packets
|
|
self.count = self.count + 1
|
|
data = data or pinfo.tap_data
|
|
if not data then
|
|
return
|
|
end
|
|
-- frames
|
|
self.frames = self.frames + (data.frames or 0)
|
|
-- frames with more flag set
|
|
self.more = self.more + (data.more or 0)
|
|
-- whole messages.
|
|
self.msgs = self.msgs + (data.msgs or 0)
|
|
-- total bytes in frame bodies.
|
|
self.body_bytes = self.body_bytes + (data.body_bytes or 0)
|
|
end
|
|
|
|
function stats_tap_mt:draw()
|
|
return format([[
|
|
ZeroMQ Packets: %d
|
|
Frames: %d
|
|
Messages: %d
|
|
Flags: More: %d
|
|
Payload bytes: %d
|
|
]],
|
|
self.count,
|
|
self.frames,
|
|
self.msgs,
|
|
self.more,
|
|
self.body_bytes)
|
|
end
|
|
|
|
function stats_tap_mt:reset()
|
|
self.count = 0
|
|
self.frames = 0
|
|
self.msgs = 0
|
|
self.more = 0
|
|
self.body_bytes = 0
|
|
end
|
|
|
|
local function create_stats_tap()
|
|
local tap = setmetatable({}, stats_tap_mt)
|
|
|
|
tap:reset() -- initialize tap.
|
|
return tap, 'zmq', 'lua'
|
|
end
|
|
|
|
tap("ZeroMQ stats tap", create_stats_tap)
|
|
|