** Copyright (C) 2001-2025 Zabbix SIA
** This program is free software: you can redistribute it and/or modify it under the terms of
** the GNU Affero General Public License as published by the Free Software Foundation, version 3.
** This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
** without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
** See the GNU Affero General Public License for more details.
** You should have received a copy of the GNU Affero General Public License along with this program.
** If not, see <https://www.gnu.org/licenses/>.
"github.com/omeid/go-yarn"
"golang.zabbix.com/sdk/metric"
"golang.zabbix.com/sdk/plugin"
"golang.zabbix.com/sdk/uri"
"golang.zabbix.com/sdk/zbxerr"
// Plugin inherits plugin.Base and store plugin-specific data.
// impl is the pointer to the plugin implementation.
// Export implements the Exporter interface.
func (p *Plugin) Export(key string, rawParams []string, _ plugin.ContextProvider) (any, error) {
params, extraParams, hc, err := metrics[key].EvalParams(rawParams, p.options.Sessions)
return nil, zbxerr.ErrorInvalidParams.Wrap(err)
err = metric.SetDefaults(params, hc, p.options.Default)
return nil, zbxerr.ErrorInvalidParams.Wrap(err)
uri, err := uri.NewWithCreds(params["URI"], params["User"], params["Password"], uriDefaults)
return nil, zbxerr.ErrorInvalidParams.Wrap(err)
handleMetric := getHandlerFunc(key)