Giter VIP home page Giter VIP logo

zabbix_agent_bench's People

Contributors

cavaliercoder avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

zabbix_agent_bench's Issues

Last key omitted if it is a discovery prototype

If the last key in a key file is a prototype, the parent discovery key and all of its children are omitted from the test.

This is because item discoveries are only executed (main.go:167) if a subsequent normal key is found (main.go:142) in the key file loading loop.

If agent item key contains a % character the standard output is messed up (not verbose section).

The following is the keys configuration file:

Keys

eventlog[System,,"Warning|Error|Critical",Zabbix Agent,,,]
perf_counter["\Process(zabbix_agentd)% Privileged Time"]
perf_counter["\Process(zabbix_agentd)% Processor Time"]
perf_counter["\Process(zabbix_agentd)% User Time"]
perf_counter["\Process(zabbix_agentd)\Creating Process ID"]
perf_counter["\Process(zabbix_agentd)\Elapsed Time"]
perf_counter["\Process(zabbix_agentd)\Handle Count"]
perf_counter["\Process(zabbix_agentd)\ID Process"]
perf_counter["\Process(zabbix_agentd)\IO Data Bytes/sec"]
perf_counter["\Process(zabbix_agentd)\IO Data Operations/sec"]
perf_counter["\Process(zabbix_agentd)\IO Other Bytes/sec"]
perf_counter["\Process(zabbix_agentd)\IO Other Operations/sec"]
perf_counter["\Process(zabbix_agentd)\IO Read Bytes/sec"]
perf_counter["\Process(zabbix_agentd)\IO Read Operations/sec"]
perf_counter["\Process(zabbix_agentd)\IO Write Bytes/sec"]
perf_counter["\Process(zabbix_agentd)\IO Write Operations/sec"]
perf_counter["\Process(zabbix_agentd)\Page Faults/sec"]
perf_counter["\Process(zabbix_agentd)\Page File Bytes"]
perf_counter["\Process(zabbix_agentd)\Page File Bytes Peak"]
perf_counter["\Process(zabbix_agentd)\Pool Nonpaged Bytes"]
perf_counter["\Process(zabbix_agentd)\Pool Paged Bytes"]
perf_counter["\Process(zabbix_agentd)\Priority Base"]
perf_counter["\Process(zabbix_agentd)\Private Bytes"]
perf_counter["\Process(zabbix_agentd)\Thread Count"]
perf_counter["\Process(zabbix_agentd)\Virtual Bytes"]
perf_counter["\Process(zabbix_agentd)\Virtual Bytes Peak"]
perf_counter["\Process(zabbix_agentd)\Working Set"]
perf_counter["\Process(zabbix_agentd)\Working Set - Private"]
perf_counter["\Process(zabbix_agentd)\Working Set Peak"]

This is the verbose output:

./zabbix_agent_bench -host=10.5.9.39 -threads=1 -limit=1 -keys=./keys/Template\ Zabbix\ Agent\ -\ Windows.keys -verbose

Testing 29 keys across 1 threads...
[item] eventlog[System,,"Warning|Error|Critical",Zabbix Agent,,,]: ZBX_NOTSUPPORTEDAccessible only as active check.
[item] perf_counter["\Process(zabbix_agentd)% Privileged Time"]: 0.000000
[item] perf_counter["\Process(zabbix_agentd)% Processor Time"]: 0.000000
[item] perf_counter["\Process(zabbix_agentd)% User Time"]: 0.000000
[item] perf_counter["\Process(zabbix_agentd)\Creating Process ID"]: 468.000000
[item] perf_counter["\Process(zabbix_agentd)\Elapsed Time"]: 7285.248998
[item] perf_counter["\Process(zabbix_agentd)\Handle Count"]: 458.000000
[item] perf_counter["\Process(zabbix_agentd)\ID Process"]: 6564.000000
[item] perf_counter["\Process(zabbix_agentd)\IO Data Bytes/sec"]: 0.000000
[item] perf_counter["\Process(zabbix_agentd)\IO Data Operations/sec"]: 0.000000
[item] perf_counter["\Process(zabbix_agentd)\IO Other Bytes/sec"]: 1994.828356
[item] perf_counter["\Process(zabbix_agentd)\IO Other Operations/sec"]: 34.996989
[item] perf_counter["\Process(zabbix_agentd)\IO Read Bytes/sec"]: 0.000000
[item] perf_counter["\Process(zabbix_agentd)\IO Read Operations/sec"]: 0.000000
[item] perf_counter["\Process(zabbix_agentd)\IO Write Bytes/sec"]: 0.000000
[item] perf_counter["\Process(zabbix_agentd)\IO Write Operations/sec"]: 0.000000
[item] perf_counter["\Process(zabbix_agentd)\Page Faults/sec"]: 0.000000
[item] perf_counter["\Process(zabbix_agentd)\Page File Bytes"]: 11231232.000000
[item] perf_counter["\Process(zabbix_agentd)\Page File Bytes Peak"]: 11231232.000000
[item] perf_counter["\Process(zabbix_agentd)\Pool Nonpaged Bytes"]: 46968.000000
[item] perf_counter["\Process(zabbix_agentd)\Pool Paged Bytes"]: 64532.000000
[item] perf_counter["\Process(zabbix_agentd)\Priority Base"]: 8.000000
[item] perf_counter["\Process(zabbix_agentd)\Private Bytes"]: 11231232.000000
[item] perf_counter["\Process(zabbix_agentd)\Thread Count"]: 57.000000
[item] perf_counter["\Process(zabbix_agentd)\Virtual Bytes"]: 104140800.000000
[item] perf_counter["\Process(zabbix_agentd)\Virtual Bytes Peak"]: 104140800.000000
[item] perf_counter["\Process(zabbix_agentd)\Working Set"]: 13565952.000000
[item] perf_counter["\Process(zabbix_agentd)\Working Set - Private"]: ZBX_NOTSUPPORTEDCannot obtain performance information from collector.
[item] perf_counter["\Process(zabbix_agentd)\Working Set Peak"]: 13565952.000000

This is the standard output:

eventlog[System,,"Warning|Error|Critical",Zabbix Agent,,,] : 0 1 0
perf_counter["\Process(zabbix_agentd)%!P(MISSING)rivileged Time"] : 1 0 0
perf_counter["\Process(zabbix_agentd)%!P(MISSING)rocessor Time"] : 1 0 0
perf_counter["\Process(zabbix_agentd)%!U(MISSING)ser Time"] : 1 0 0
perf_counter["\Process(zabbix_agentd)\Creating Process ID"] : 1 0 0
perf_counter["\Process(zabbix_agentd)\Elapsed Time"] : 1 0 0
perf_counter["\Process(zabbix_agentd)\Handle Count"] : 1 0 0
perf_counter["\Process(zabbix_agentd)\ID Process"] : 1 0 0
perf_counter["\Process(zabbix_agentd)\IO Data Bytes/sec"] : 1 0 0
perf_counter["\Process(zabbix_agentd)\IO Data Operations/sec"] : 1 0 0
perf_counter["\Process(zabbix_agentd)\IO Other Bytes/sec"] : 1 0 0
perf_counter["\Process(zabbix_agentd)\IO Other Operations/sec"] : 1 0 0
perf_counter["\Process(zabbix_agentd)\IO Read Bytes/sec"] : 1 0 0
perf_counter["\Process(zabbix_agentd)\IO Read Operations/sec"] : 1 0 0
perf_counter["\Process(zabbix_agentd)\IO Write Bytes/sec"] : 1 0 0
perf_counter["\Process(zabbix_agentd)\IO Write Operations/sec"] : 1 0 0
perf_counter["\Process(zabbix_agentd)\Page Faults/sec"] : 1 0 0
perf_counter["\Process(zabbix_agentd)\Page File Bytes Peak"] : 1 0 0
perf_counter["\Process(zabbix_agentd)\Page File Bytes"] : 1 0 0
perf_counter["\Process(zabbix_agentd)\Pool Nonpaged Bytes"] : 1 0 0
perf_counter["\Process(zabbix_agentd)\Pool Paged Bytes"] : 1 0 0
perf_counter["\Process(zabbix_agentd)\Priority Base"] : 1 0 0
perf_counter["\Process(zabbix_agentd)\Private Bytes"] : 1 0 0
perf_counter["\Process(zabbix_agentd)\Thread Count"] : 1 0 0
perf_counter["\Process(zabbix_agentd)\Virtual Bytes Peak"] : 1 0 0
perf_counter["\Process(zabbix_agentd)\Virtual Bytes"] : 1 0 0
perf_counter["\Process(zabbix_agentd)\Working Set - Private"] : 0 1 0
perf_counter["\Process(zabbix_agentd)\Working Set Peak"] : 1 0 0
perf_counter["\Process(zabbix_agentd)\Working Set"] : 1 0 0

=== Totals ===

Total values processed: 29
Total unsupported values: 2
Total transport errors: 0
Total key list iterations: 1

Finished! Processed 29 values across 1 threads in 40.232175ms (720.816113 NVPS)

Option to expect unsupported items

Add syntax to the key file format to instruct zabbix_agent_bench to expect a ZBX_NOTSUPPORTED response. This is useful for testing boundary cases for agent keys.

Option to expect return value

Extend the key file syntax to enable zabbix_agent_bench to expect a return value from tested keys. This should probably be specified as a regular expression.
E.g. agent.ping expects a return value of 1.

Option to exit on first error

Add a new command switch to immediately terminate if an unsupported item or transport error occurs.
This is useful when running unit tests of agent items.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.