"golang.zabbix.com/sdk/errs"
"golang.zabbix.com/sdk/metric"
"golang.zabbix.com/sdk/plugin"
"golang.zabbix.com/sdk/uri"
keyCustomQuery = "mysql.custom.query"
keyDatabasesDiscovery = "mysql.db.discovery"
keyDatabaseSize = "mysql.db.size"
keyReplicationDiscovery = "mysql.replication.discovery"
keyReplicationSlaveStatus = "mysql.replication.get_slave_status"
keyStatusVars = "mysql.get_status_variables"
keyVersion = "mysql.version"
tlsConnectParam = "TLSConnect"
tlsCertParam = "TLSCertFile"
tlsKeyParam = "TLSKeyFile"
masterHostParam = "Master"
uriDefaults = &uri.Defaults{Scheme: "tcp", Port: "3306"}
paramURI = metric.NewConnParam(uriParam, "URI to connect or session name.").
WithDefault(uriDefaults.Scheme + "://localhost:" + uriDefaults.Port).WithSession().
WithValidator(uri.URIValidator{Defaults: uriDefaults, AllowedSchemes: []string{"tcp", "unix"}})
paramUsername = metric.NewConnParam("User", "MySQL user.").WithDefault("root")
paramPassword = metric.NewConnParam("Password", "User's password.").WithDefault("")
paramTLSConnect = metric.NewSessionOnlyParam(tlsConnectParam, "DB connection encryption type.").WithDefault("")
paramTLSCaFile = metric.NewSessionOnlyParam(tlsCAParam, "TLS ca file path.").WithDefault("")
paramTLSCertFile = metric.NewSessionOnlyParam(tlsCertParam, "TLS cert file path.").WithDefault("")
paramTLSKeyFile = metric.NewSessionOnlyParam(tlsKeyParam, "TLS key file path.").WithDefault("")
metrics = metric.MetricSet{