-
Change Request
-
Resolution: Fixed
-
Trivial
-
4.4.0
-
None
-
Sprint 57 (Oct 2019), Sprint 58 (Nov 2019), Sprint 59 (Dec 2019), Sprint 60 (Jan 2020), Sprint 61 (Feb 2020), Sprint 62 (Mar 2020), Sprint 63 (Apr 2020), Sprint 64 (May 2020), Sprint 65 (Jun 2020), Sprint 66 (Jul 2020), Sprint 67 (Aug 2020)
-
2
Currently plugin Configure interface accepts string map of key=value pairs taken directly from the Plugins.<name> configuration parameter.
There are several drawbacks with this approach:
- complex configuration can be supported only by encoding it into key names
- to access common parameters (timeout) plugin must directly access global agent configuration
- no built in (through tags) validation, default values
The idea is to change Configure parameter to interface{} which plugin would unmarshal into own configuration structure using Unmarshal method from conf package.
The parameter would contain a tree structure of configuration nodes (something like this is already used by configuration parser internally), but it would be better to hide the internal implementation by passing interface{}. All common parameters would be added to this tree structure under Common node.
Plugins would need to define their own options structure and embed the common options structure:
type Options struct {
conf.Common
// plugin options
}
- part of
-
ZBXNEXT-5428 Create Redis agent plugin
- Closed
-
ZBX-16820 Remote commands do not work on zabbix-agent2
- Closed