Print counter group information

Print the details of counter groups.

This sample does two things

  • Print details about a single counter group passed on the command line
  • Print details about all available counter groups

The only difference between the two is for the former we have to specify a :counter_group guid parameter. For the latter, we leave it blank forcing Trisul to retrieve all the counter group information.

See here for a list of common GUIDs. You can also go to // Customize > Counters > Meters // to get the GUIDs of all counter groups running on your system.

Usage

Usage

ruby cginfo TRISUL_HOST TRISUL_PORT guid

Example output


[vivek@localhost t3]$ ruby cginfo.rb 127.0.0.1 12001 ‘{C51B48D4-7876-479E-B0D9-BD9EFF03CE2E}’
“Start Time = 1999-03-01 18:31:00 +0530”
“End time = 1999-03-02 04:09:00 +0530”
“Bucket Size = 30000”
“Name = Apps”
GUID = {C51B48D4-7876-479E-B0D9-BD9EFF03CE2E}”
External Hosts {00AA77BB-0063-11A5-8380-FEBDBABBDBEA} 1999-03-01 18:31:00 +0530 1999-03-02 04:09:00 +0530 30000
VLANStats {0EC72E9E-3AD2-43FD-8173-74693EEA08D0} 1999-03-01 18:31:00 +0530 1999-03-02 04:09:00 +0530 30000
Alert Classes {20BC4345-37F0-44D0-ABFF-3BED97363CB1} 1999-03-01 18:31:00 +0530 1999-03-02 04:09:00 +0530 300000
FlowGens {2314BB8E-2BCC-4B86-8AA2-677E5554C0FE} 1999-03-01 18:31:00 +0530 1999-03-02 04:09:00 +0530 30000
Aggregates {393B5EBC-AB41-4387-8F31-8077DB917336} 1999-03-01 18:31:00 +0530 1999-03-02 04:09:00 +0530 30000
Subnets {429B65AD-CDA4-452E-A852-24D8A3D0FBB3} 1999-03-01 18:31:00 +0530 1999-03-02 04:09:00 +0530 30000

Code


# Trisul Remote Protocol TRP Demo script
#
# Counter Group Info
#
# Prints information about all supported couner  groups on a trisul instance
#
require 'rubygems' if RUBY_VERSION < '1.9'
require 'trisulrp'

include TrisulRP::Protocol
include TrisulRP::Utils


raise "Usage : cginfo host port cgguid" unless ARGV.length==3



TrisulRP::Protocol.connect(ARGV.shift,ARGV.shift,"Demo_Client.crt","Demo_Client.key") do |conn|

    target_guid = ARGV.shift

    req =TrisulRP::Protocol.mk_request(TRP::Message::Command::COUNTER_GROUP_INFO_REQUEST,
                                        :counter_group => target_guid )

# print a single counter group info
    TrisulRP::Protocol.get_response(conn,req) do |resp|
          resp.group_details.each do |group_detail|
                                p "Start Time = #{Time.at(group_detail.time_interval.from.tv_sec)}"
                                p "End time = #{Time.at(group_detail.time_interval.to.tv_sec)}"
                                p "Bucket Size = #{group_detail.bucket_size}"
                                p "Name = " + group_detail.name
                                p "GUID = " + group_detail.guid

          end
    end

    # print info about all counter groups, note that we have not specified the counter_group
    # parameter in the request. So all the counter groups are retrieved.

    req =TrisulRP::Protocol.mk_request(TRP::Message::Command::COUNTER_GROUP_INFO_REQUEST)

    TrisulRP::Protocol.get_response(conn,req) do |resp|
          resp.group_details.each do |group_detail|
                        print  group_detail.name.ljust(25)
                        print  group_detail.guid
                        print " #{Time.at(group_detail.time_interval.from.tv_sec)}  "
                        print " #{Time.at(group_detail.time_interval.to.tv_sec)}  "
                        print " #{group_detail.bucket_size}  "
print "\n"

                  end
    end

end