NOTE: This is a safe harbor release. Future releases will have breaking changes to the configuration format.
- [ENHANCEMENT] Remove vendoring
- [ENHANCEMENT] Add TLS support
- [ENHANCEMENT] Support EnumAsInfo as an index (#559)
- [ENHANCEMENT] Allow lookup chaining for uints (#527)
- [FEATURE] Allow lookup chaining in a basic way (#489)
- [BUGFIX] Reduce and fix timeouts for SNMP requests (#511)
- [ENHANCEMENT] Use contexts with SNMP, so the http connection closing stops the SNMP walk. (#481)
- [ENHANCEMENT] Sanitize the snmp probe query params by only allowing them to be specified once. (#467)
- [FEATURE] Support BITS values. (#465)
- [ENHANCEMENT] Add option to fail on parse errors in the generator. (#382)
- [ENHANCEMENT] Switch logging to go-kit (#447)
- [BUGFIX] Handle trailing linefeed in NetSNMP output adding 1 to the error count (#398)
This release includes changes to both the generator.yml format and the default output of the generator for lookups.
- [CHANGE] Support multi-index lookups. This changes old_index to be a list old_indexes in generator.yml. (#339)
- [CHANGE] Allow keeping of old labels from lookups, enabled by default (#339)
- [CHANGE] The previous example modules if_mib_ifalias, if_mib_ifdescr, and if_mib_ifname have been removed from snmp.yml/generator.yml. These labels are now all available on the default if_mib example module (#339)
- [FEATURE] Add EnumAsInfo and EnumAsStateSet type overrides (#378)
- [ENHANCEMENT] Better error messages when an index can't be handled (#369)
- [FEATURE] Add dry-run option to validate configuration (#363)
- [FEATURE] Add support for LLDP-MIB's LldpPortId (#337)
- [ENHANCEMENT] Add automatic Cou nter64 wrapping (#351)
- [ENHANCEMENT] Add comment that snmp.yaml is auto-generated (#364)
- [BUGFIX] Fix signal handling (#353)
- [FEATURE] Add support for IMPLIED indexes
- [FEATURE] Add support for InetAddress
- [FEATURE] Add support for overriding InetAddress when index size is incorrectly missing, as seen in some Juniper devices
- [FEATURE] Support added for DateAndTime textual convention (#322)
- [BUGFIX] Avoid false positives when looking for display strings (#312)
- [FEATURE] Generator: Support ignoring specific metrics
- [FEATURE] Generator: Support overriding the type of metrics
- [BUGFIX] Don't panic on invalid utf-8 data, just fail the scrape
- [FEATURE] Use GET rather than GETBULK if specific non-table object or table object instance is listed in generator module walk
- [BUGFIX] Better handle SNMP v3 auth config, fixing some validation
- [BUGFIX] Fail the scrape rather than exposing invalid UTF-8 label values
- [BUGFIX] Remove incorrect InetAddress implementation
- [FEATURE] Support for Opaque Float/Double types
- [FEATURE] Support SNMP v3 context names
- [FEATURE] Support fixed-size string indexes
- [FEATURE] Generator detects a broader range of display strings, including SnmpAdminString
- [BUGFIX] Pull in upstream fix for spurious results when walk matched no oids
- [CHANGE] Default module is now
if_mib
rather thandefault
.if_mib
has no lookups, andif_mib_*
has replaceddefault_*
.if_mib_ifdescr
has the old behaviour ofdefault
. - [BUGFIX] Don't hide secrets when generating snmp.yml
- [BUGFIX] Correctly handle different auth settings across modules
- [FEATURE] Expose config on /config
- [FEATURE] Add help text to metrics
- [FEATURE] Allow for extracting numeric metrics from string objects via regular expressions
- [FEATURE/CHANGE] Config now only reloaded on SIGHUP or /-/reload
- [CHANGE] Switch to kingpin flags, all flags now have two hyphens rather than one
- [CHANGE] Remove Fortinet example module
- [BUGFIX] Handle Counter64s with values >=2^63 correctly
- [BUGFIX] Sanitize metric names
- [BUGFIX] Add back objects marked no-access to generator output
- [FEATURE] Add Homepage on /. #135
- [ENHANCEMENT] Add ddwrt OIDs to generator. #147
- [ENHANCEMENT] Add synology OIDs to generator. #149, #154
- [ENHANCEMENT] Use lookup node's index label in the generator. #162
- [BUGFIX] Fix
authNoPriv
in config parsing. #141 - [BUGFIX] Update gosnmp vendoring to fix timeouts/errors. #139, #171
- [FEATURE] Support MAC Addresses and IP addresses as object values
- [ENHANCEMENT] Allow compiling generator under FreeBSD
- [ENHANCEMENT] Workaround RFC1213-MIB being too old to have type hints
- [BUGFIX] Represent OctetStrings as hex
- [FEATURE] Add config generator
- [FEATURE] Add support for strings in PDUs
- [FEATURE] Add debug logging
- [FEATURE] Add -version flag
- [BUGFIX] Correctly handle missing label lookups
This is a port to Go from the original Python version.
Behaviour is largely the same (the same config file will work), however the URL has changed a bit: It's now /snmp?target=1.2.3.4 where previously it was /metrics?address=1.2.3.4
As this is a rewrite, a full list of changes will not be provided.
- [FEATURE] SNMP v1 support
- [FEATURE] SNMP v3 support
- [FEATURE] InetAddress supported as part of a table index
- [FEATURE] OctetString supported as part of a table index
- [FEATURE] Cisco WLC example added to config
- [FEATURE] Example systemd config
- [ENHANCEMENT] Handle devices that remove trailing 0s in OIDs
- [ENHANCEMENT] Python 3 support
- [BUGFIX] Fixed rendering of MAC addresses
This release is breaking. To convert your config to work with the new release, indent all the lines and then prepend the linedefault:
- [FEATURE] Support multiple modules inside one config
This release changes the SNMP exporter to use the NetSNMP Python bindings, which are faster and use less CPU. This needs manual installation of the bindings:
apt-get install libsnmp-python # On older Debian-based distros.
apt-get install python-netsnmp # On newer Debian-based distros.
yum install net-snmp-python # On Red Hat-based distros.
- [FEATURE] Support for setting community
- [ENHANCEMENT] Switch to NetSNMP Python bindings
- [ENHANCEMENT] Rule lookup is done with a tree rather than a linear search
- [ENHANCEMENT] Various tweaks for dodgy hardware