config

package
v0.13.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 15, 2022 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CatalogVar2Map

func CatalogVar2Map(cv map[string]*VarCatalogCfg) map[string]interface{}

CatalogVar2Map return interface map from variable table

func InitMetricsCfg

func InitMetricsCfg(cfg *DBConfig) error

InitMetricsCfg this function does 2 things 1.- Initialice id from key of maps for all SnmpMetricCfg and InfluxMeasurementCfg objects 2.- Initialice references between InfluxMeasurementCfg and SnmpMetricGfg objects

InitMetricsCfg xx

func SetDirs

func SetDirs(data string, log string, conf string)

SetDirs set default dirs to set db and logs

func SetLogger

func SetLogger(l *logrus.Logger)

SetLogger set the output log

Types

type Config

type Config struct {
	General  GeneralConfig `mapstructure:"general"`
	Database DatabaseCfg   `mapstructure:"database"`
	Selfmon  SelfMonConfig `mapstructure:"selfmon"`
	HTTP     HTTPConfig    `mapstructure:"http"`
}

Config Main Configuration struct

type ConversionMode

type ConversionMode int
const (
	FLOAT     ConversionMode = 0
	INTEGER   ConversionMode = 1
	UNSIGNED  ConversionMode = 2
	STRING    ConversionMode = 3
	BOOLEAN   ConversionMode = 4
	HWADDRESS ConversionMode = 5
	IPADDRESS ConversionMode = 6
	NONE      ConversionMode = 5000
)

func (ConversionMode) GetString

func (c ConversionMode) GetString() string

GetString transform type to string

type CustomFilterCfg

type CustomFilterCfg struct {
	ID          string `xorm:"'id' unique" binding:"Required"`
	Description string `xorm:"description"`
	RelatedDev  string `xorm:"related_dev"`
	RelatedMeas string `xorm:"related_meas"`
	Items       []struct {
		TagID string
		Alias string
	} `xorm:"-"`
}

CustomFilterCfg table with user custom choosed indexes swagger:model CustomFilterCfg

type CustomFilterItems

type CustomFilterItems struct {
	CustomID string `xorm:"customid"`
	TagID    string `xorm:"tagid"`
	Alias    string `xorm:"alias"`
}

CustomFilterItems list of items on each custom filter

type DBConfig

type DBConfig struct {
	Metrics      map[string]*SnmpMetricCfg
	Measurements map[string]*MeasurementCfg
	MFilters     map[string]*MeasFilterCfg
	GetGroups    map[string]*MGroupsCfg
	SnmpDevice   map[string]*SnmpDeviceCfg
	Influxdb     map[string]*InfluxCfg
	VarCatalog   map[string]interface{}
}

DBConfig read from DB

type DatabaseCfg

type DatabaseCfg struct {
	Type           string `mapstructure:"type" envconfig:"SNMPCOL_DATABASE_DRIVER_TYPE"`
	Host           string `mapstructure:"host" envconfig:"SNMPCOL_DATABASE_SERVER_HOST"`
	Name           string `mapstructure:"name" envconfig:"SNMPCOL_DATABASE_NAME"`
	User           string `mapstructure:"user" envconfig:"SNMPCOL_DATABASE_USERNAME"`
	Password       string `mapstructure:"password" envconfig:"SNMPCOL_DATABASE_PASSWORD"`
	SslMode        string `mapstructure:"ssl_mode" envconfig:"SNMPCOL_DATABASE_SSL_MODE"`
	ClientCertPath string `mapstructure:"client_cert_path" envconfig:"SNMPCOL_DATABASE_CLIENT_CERT_PATH"`
	ClientKeyPath  string `mapstructure:"client_key_path" envconfig:"SNMPCOL_DATABASE_CLIENT_KEY_PATH"`
	CaCertPath     string `mapstructure:"ca_cert_path" envconfig:"SNMPCOL_DATABASE_CA_CERT_PATH"`
	SQLLogFile     string `mapstructure:"sqllogfile" envconfig:"SNMPCOL_DATABASE_SQL_LOG_FILE"`
	Debug          string `mapstructure:"debug" envconfig:"SNMPCOL_DATABASE_SQL_DEBUG"`
	LogMode        string `mapstructure:"log_mode" envconfig:"SNMPCOL_DATABASE_LOG_MODE"`
	// contains filtered or unexported fields
}

DatabaseCfg de configuration for the database

func (*DatabaseCfg) AddCustomFilterCfg

func (dbc *DatabaseCfg) AddCustomFilterCfg(dev CustomFilterCfg) (int64, error)

AddCustomFilterCfg for adding new Metric

func (*DatabaseCfg) AddInfluxCfg

func (dbc *DatabaseCfg) AddInfluxCfg(dev InfluxCfg) (int64, error)

AddInfluxCfg for adding new devices

func (*DatabaseCfg) AddMGroupsCfg

func (dbc *DatabaseCfg) AddMGroupsCfg(dev MGroupsCfg) (int64, error)

AddMGroupsCfg for adding new Metric

func (*DatabaseCfg) AddMeasFilterCfg

func (dbc *DatabaseCfg) AddMeasFilterCfg(dev MeasFilterCfg) (int64, error)

AddMeasFilterCfg for adding new Metric

func (*DatabaseCfg) AddMeasurementCfg

func (dbc *DatabaseCfg) AddMeasurementCfg(dev MeasurementCfg) (int64, error)

AddMeasurementCfg for adding new Metric

func (*DatabaseCfg) AddOidConditionCfg

func (dbc *DatabaseCfg) AddOidConditionCfg(dev OidConditionCfg) (int64, error)

AddOidConditionCfg for adding new Metric

func (*DatabaseCfg) AddSnmpDeviceCfg

func (dbc *DatabaseCfg) AddSnmpDeviceCfg(dev SnmpDeviceCfg) (int64, error)

AddSnmpDeviceCfg for adding new devices

func (*DatabaseCfg) AddSnmpMetricCfg

func (dbc *DatabaseCfg) AddSnmpMetricCfg(dev SnmpMetricCfg) (int64, error)

AddSnmpMetricCfg for adding new Metric

func (*DatabaseCfg) AddVarCatalogCfg

func (dbc *DatabaseCfg) AddVarCatalogCfg(dev VarCatalogCfg) (int64, error)

AddVarCatalogCfg for adding new Global Variable

func (*DatabaseCfg) DelCustomFilterCfg

func (dbc *DatabaseCfg) DelCustomFilterCfg(id string) (int64, error)

DelCustomFilterCfg for deleting influx databases from ID

func (*DatabaseCfg) DelInfluxCfg

func (dbc *DatabaseCfg) DelInfluxCfg(id string) (int64, error)

DelInfluxCfg for deleting influx databases from ID

func (*DatabaseCfg) DelMGroupsCfg

func (dbc *DatabaseCfg) DelMGroupsCfg(id string) (int64, error)

DelMGroupsCfg for deleting influx databases from ID

func (*DatabaseCfg) DelMeasFilterCfg

func (dbc *DatabaseCfg) DelMeasFilterCfg(id string) (int64, error)

DelMeasFilterCfg for deleting influx databases from ID

func (*DatabaseCfg) DelMeasurementCfg

func (dbc *DatabaseCfg) DelMeasurementCfg(id string) (int64, error)

DelMeasurementCfg for deleting influx databases from ID

func (*DatabaseCfg) DelOidConditionCfg

func (dbc *DatabaseCfg) DelOidConditionCfg(id string) (int64, error)

DelOidConditionCfg for deleting influx databases from ID

func (*DatabaseCfg) DelSnmpDeviceCfg

func (dbc *DatabaseCfg) DelSnmpDeviceCfg(id string) (int64, error)

DelSnmpDeviceCfg for deleting devices from ID

func (*DatabaseCfg) DelSnmpMetricCfg

func (dbc *DatabaseCfg) DelSnmpMetricCfg(id string) (int64, error)

DelSnmpMetricCfg for deleting influx databases from ID

func (*DatabaseCfg) DelVarCatalogCfg

func (dbc *DatabaseCfg) DelVarCatalogCfg(id string) (int64, error)

DelVarCatalogCfg for deleting influx databases from ID

func (*DatabaseCfg) GeSnmpDeviceCfgAffectOnDel

func (dbc *DatabaseCfg) GeSnmpDeviceCfgAffectOnDel(id string) ([]*DbObjAction, error)

GeSnmpDeviceCfgAffectOnDel for deleting devices from ID

func (*DatabaseCfg) GetCustomFilterCfgAffectOnDel

func (dbc *DatabaseCfg) GetCustomFilterCfgAffectOnDel(id string) ([]*DbObjAction, error)

GetCustomFilterCfgAffectOnDel for deleting devices from ID

func (*DatabaseCfg) GetCustomFilterCfgArray

func (dbc *DatabaseCfg) GetCustomFilterCfgArray(filter string) ([]*CustomFilterCfg, error)

GetCustomFilterCfgArray generate an array of metrics with all its information

func (*DatabaseCfg) GetCustomFilterCfgByID

func (dbc *DatabaseCfg) GetCustomFilterCfgByID(id string) (CustomFilterCfg, error)

GetCustomFilterCfgByID get metric data by id

func (*DatabaseCfg) GetCustomFilterCfgMap

func (dbc *DatabaseCfg) GetCustomFilterCfgMap(filter string) (map[string]*CustomFilterCfg, error)

GetCustomFilterCfgMap return data in map format

func (*DatabaseCfg) GetInfluxCfgAffectOnDel

func (dbc *DatabaseCfg) GetInfluxCfgAffectOnDel(id string) ([]*DbObjAction, error)

GetInfluxCfgAffectOnDel for deleting devices from ID

func (*DatabaseCfg) GetInfluxCfgArray

func (dbc *DatabaseCfg) GetInfluxCfgArray(filter string) ([]*InfluxCfg, error)

GetInfluxCfgArray generate an array of devices with all its information

func (*DatabaseCfg) GetInfluxCfgByID

func (dbc *DatabaseCfg) GetInfluxCfgByID(id string) (InfluxCfg, error)

GetInfluxCfgByID get device data by id

func (*DatabaseCfg) GetInfluxCfgMap

func (dbc *DatabaseCfg) GetInfluxCfgMap(filter string) (map[string]*InfluxCfg, error)

GetInfluxCfgMap return data in map format

func (*DatabaseCfg) GetMGroupsCfgAffectOnDel

func (dbc *DatabaseCfg) GetMGroupsCfgAffectOnDel(id string) ([]*DbObjAction, error)

GetMGroupsCfgAffectOnDel for deleting devices from ID

func (*DatabaseCfg) GetMGroupsCfgArray

func (dbc *DatabaseCfg) GetMGroupsCfgArray(filter string) ([]*MGroupsCfg, error)

GetMGroupsCfgArray generate an array of metrics with all its information

func (*DatabaseCfg) GetMGroupsCfgByID

func (dbc *DatabaseCfg) GetMGroupsCfgByID(id string) (MGroupsCfg, error)

GetMGroupsCfgByID get metric data by id

func (*DatabaseCfg) GetMGroupsCfgMap

func (dbc *DatabaseCfg) GetMGroupsCfgMap(filter string) (map[string]*MGroupsCfg, error)

GetMGroupsCfgMap return data in map format

func (*DatabaseCfg) GetMeasFilterCfgAffectOnDel

func (dbc *DatabaseCfg) GetMeasFilterCfgAffectOnDel(id string) ([]*DbObjAction, error)

GetMeasFilterCfgAffectOnDel for deleting devices from ID

func (*DatabaseCfg) GetMeasFilterCfgArray

func (dbc *DatabaseCfg) GetMeasFilterCfgArray(filter string) ([]*MeasFilterCfg, error)

GetMeasFilterCfgArray generate an array of measurements with all its information

func (*DatabaseCfg) GetMeasFilterCfgByID

func (dbc *DatabaseCfg) GetMeasFilterCfgByID(id string) (MeasFilterCfg, error)

GetMeasFilterCfgByID get metric data by id

func (*DatabaseCfg) GetMeasFilterCfgMap

func (dbc *DatabaseCfg) GetMeasFilterCfgMap(filter string) (map[string]*MeasFilterCfg, error)

GetMeasFilterCfgMap return data in map format

func (*DatabaseCfg) GetMeasurementCfgAffectOnDel

func (dbc *DatabaseCfg) GetMeasurementCfgAffectOnDel(id string) ([]*DbObjAction, error)

GetMeasurementCfgAffectOnDel for deleting devices from ID

func (*DatabaseCfg) GetMeasurementCfgArray

func (dbc *DatabaseCfg) GetMeasurementCfgArray(filter string) ([]*MeasurementCfg, error)

GetMeasurementCfgArray generate an array of measurements with all its information

func (*DatabaseCfg) GetMeasurementCfgByID

func (dbc *DatabaseCfg) GetMeasurementCfgByID(id string) (MeasurementCfg, error)

GetMeasurementCfgByID get metric data by id

func (*DatabaseCfg) GetMeasurementCfgMap

func (dbc *DatabaseCfg) GetMeasurementCfgMap(filter string) (map[string]*MeasurementCfg, error)

GetMeasurementCfgMap return data in map format

func (*DatabaseCfg) GetOidConditionCfgAffectOnDel

func (dbc *DatabaseCfg) GetOidConditionCfgAffectOnDel(id string) ([]*DbObjAction, error)

GetOidConditionCfgAffectOnDel for deleting devices from ID

func (*DatabaseCfg) GetOidConditionCfgArray

func (dbc *DatabaseCfg) GetOidConditionCfgArray(filter string) ([]*OidConditionCfg, error)

GetOidConditionCfgArray generate an array of metrics with all its information

func (*DatabaseCfg) GetOidConditionCfgByID

func (dbc *DatabaseCfg) GetOidConditionCfgByID(id string) (OidConditionCfg, error)

GetOidConditionCfgByID get metric data by id

func (*DatabaseCfg) GetOidConditionCfgMap

func (dbc *DatabaseCfg) GetOidConditionCfgMap(filter string) (map[string]*OidConditionCfg, error)

GetOidConditionCfgMap return data in map format

func (*DatabaseCfg) GetSnmpDeviceCfgArray

func (dbc *DatabaseCfg) GetSnmpDeviceCfgArray(filter string) ([]*SnmpDeviceCfg, error)

GetSnmpDeviceCfgArray generate an array of devices with all its information

func (*DatabaseCfg) GetSnmpDeviceCfgByID

func (dbc *DatabaseCfg) GetSnmpDeviceCfgByID(id string) (SnmpDeviceCfg, error)

GetSnmpDeviceCfgByID get device data by id

func (*DatabaseCfg) GetSnmpDeviceCfgMap

func (dbc *DatabaseCfg) GetSnmpDeviceCfgMap(filter string) (map[string]*SnmpDeviceCfg, error)

GetSnmpDeviceCfgMap return data in map format

func (*DatabaseCfg) GetSnmpMetricCfgAffectOnDel

func (dbc *DatabaseCfg) GetSnmpMetricCfgAffectOnDel(id string) ([]*DbObjAction, error)

GetSnmpMetricCfgAffectOnDel for deleting devices from ID

func (*DatabaseCfg) GetSnmpMetricCfgArray

func (dbc *DatabaseCfg) GetSnmpMetricCfgArray(filter string) ([]*SnmpMetricCfg, error)

GetSnmpMetricCfgArray generate an array of metrics with all its information

func (*DatabaseCfg) GetSnmpMetricCfgByID

func (dbc *DatabaseCfg) GetSnmpMetricCfgByID(id string) (SnmpMetricCfg, error)

GetSnmpMetricCfgByID get metric data by id

func (*DatabaseCfg) GetSnmpMetricCfgMap

func (dbc *DatabaseCfg) GetSnmpMetricCfgMap(filter string) (map[string]*SnmpMetricCfg, error)

GetSnmpMetricCfgMap return data in map format

func (*DatabaseCfg) GetVarCatalogCfgAffectOnDel

func (dbc *DatabaseCfg) GetVarCatalogCfgAffectOnDel(id string) ([]*DbObjAction, error)

GetVarCatalogCfgAffectOnDel for deleting devices from ID

func (*DatabaseCfg) GetVarCatalogCfgArray

func (dbc *DatabaseCfg) GetVarCatalogCfgArray(filter string) ([]*VarCatalogCfg, error)

GetVarCatalogCfgArray generate an array of metrics with all its information

func (*DatabaseCfg) GetVarCatalogCfgByID

func (dbc *DatabaseCfg) GetVarCatalogCfgByID(id string) (VarCatalogCfg, error)

GetVarCatalogCfgByID get metric data by id

func (*DatabaseCfg) GetVarCatalogCfgMap

func (dbc *DatabaseCfg) GetVarCatalogCfgMap(filter string) (map[string]*VarCatalogCfg, error)

GetVarCatalogCfgMap return data in map format

func (*DatabaseCfg) InitDB

func (dbc *DatabaseCfg) InitDB() error

InitDB initialize de BD configuration

func (*DatabaseCfg) LoadDbConfig

func (dbc *DatabaseCfg) LoadDbConfig(cfg *DBConfig)

LoadDbConfig get data from database

func (*DatabaseCfg) UpdateCustomFilterCfg

func (dbc *DatabaseCfg) UpdateCustomFilterCfg(id string, dev CustomFilterCfg) (int64, error)

UpdateCustomFilterCfg for adding new influxdb

func (*DatabaseCfg) UpdateInfluxCfg

func (dbc *DatabaseCfg) UpdateInfluxCfg(id string, dev InfluxCfg) (int64, error)

UpdateInfluxCfg for adding new influxdb

func (*DatabaseCfg) UpdateMGroupsCfg

func (dbc *DatabaseCfg) UpdateMGroupsCfg(id string, dev MGroupsCfg) (int64, error)

UpdateMGroupsCfg for adding new influxdb

func (*DatabaseCfg) UpdateMeasFilterCfg

func (dbc *DatabaseCfg) UpdateMeasFilterCfg(id string, dev MeasFilterCfg) (int64, error)

UpdateMeasFilterCfg for adding new influxdb

func (*DatabaseCfg) UpdateMeasurementCfg

func (dbc *DatabaseCfg) UpdateMeasurementCfg(id string, dev MeasurementCfg) (int64, error)

UpdateMeasurementCfg for adding new influxdb

func (*DatabaseCfg) UpdateOidConditionCfg

func (dbc *DatabaseCfg) UpdateOidConditionCfg(id string, dev OidConditionCfg) (int64, error)

UpdateOidConditionCfg for adding new influxdb

func (*DatabaseCfg) UpdateSnmpDeviceCfg

func (dbc *DatabaseCfg) UpdateSnmpDeviceCfg(id string, dev SnmpDeviceCfg) (int64, error)

UpdateSnmpDeviceCfg for adding new devices

func (*DatabaseCfg) UpdateSnmpMetricCfg

func (dbc *DatabaseCfg) UpdateSnmpMetricCfg(id string, dev SnmpMetricCfg) (int64, error)

UpdateSnmpMetricCfg for adding new influxdb

func (*DatabaseCfg) UpdateVarCatalogCfg

func (dbc *DatabaseCfg) UpdateVarCatalogCfg(id string, dev VarCatalogCfg) (int64, error)

UpdateVarCatalogCfg for adding new influxdb

type DbObjAction

type DbObjAction struct {
	Type     string
	TypeDesc string
	ObID     string
	Action   string
}

DbObjAction measurement groups to assign to devices

type GeneralConfig

type GeneralConfig struct {
	InstanceID string `mapstructure:"instanceID" envconfig:"SNMPCOL_GENERAL_INSTANCE_ID"`
	LogDir     string `mapstructure:"logdir" envconfig:"SNMPCOL_GENERAL_LOG_DIR"`
	HomeDir    string `mapstructure:"homedir" envconfig:"SNMPCOL_GENERAL_HOME_DIR"`
	DataDir    string `mapstructure:"datadir" envconfig:"SNMPCOL_GENERAL_DATA_DIR" `
	LogLevel   string `mapstructure:"loglevel" envconfig:"SNMPCOL_GENERAL_LOG_LEVEL"`
	LogMode    string `mapstructure:"log_mode" envconfig:"SNMPCOL_GENERAL_LOG_MODE"`
}

GeneralConfig has miscellaneous configuration options

type HTTPConfig

type HTTPConfig struct {
	Port          int    `mapstructure:"port"  envconfig:"SNMPCOL_HTTP_PORT"`
	Listen        string `mapstructure:"listen"  envconfig:"SNMPCOL_HTTP_LISTEN"`
	Protocol      string `mapstructure:"protocol" envconfig:"SNMPCOL_HTTP_PROTOCOL"`
	CertKey       string `mapstructure:"cert_key" envconfig:"SNMPCOL_HTTP_CERT_KEY"`
	CertFile      string `mapstructure:"cert_file" envconfig:"SNMPCOL_HTTP_CERT_FILE"`
	AdminUser     string `mapstructure:"adminuser" envconfig:"SNMPCOL_HTTP_ADMIN_USER"`
	AdminPassword string `mapstructure:"adminpassword" envconfig:"SNMPCOL_HTTP_ADMIN_PASSWORD"`
	CookieID      string `mapstructure:"cookieid" envconfig:"SNMPCOL_HTTP_COOKIE_ID"`
}

HTTPConfig has webserver config options Port should be deprecated from version >= 0.8.1

type InfluxCfg

type InfluxCfg struct {
	ID                 string `xorm:"'id' unique" binding:"Required"`
	Host               string `xorm:"host" binding:"Required"`
	Port               int    `xorm:"port" binding:"Required;IntegerNotZero"`
	DB                 string `xorm:"db" binding:"Required"`
	User               string `xorm:"user" binding:"Required"`
	Password           string `xorm:"password" binding:"Required"`
	Retention          string `xorm:"'retention' default 'autogen'" binding:"Required"`
	Precision          string `xorm:"'precision' default 's'" binding:"Default(s);OmitEmpty;In(h,m,s,ms,u,ns)"` // posible values [h,m,s,ms,u,ns] default seconds for the nature of data
	Timeout            int    `xorm:"'timeout' default 30" binding:"Default(30);IntegerNotZero"`
	UserAgent          string `xorm:"useragent" binding:"Default(snmpcollector)"`
	EnableSSL          bool   `xorm:"enable_ssl"`
	SSLCA              string `xorm:"ssl_ca"`
	SSLCert            string `xorm:"ssl_cert"`
	SSLKey             string `xorm:"ssl_key"`
	InsecureSkipVerify bool   `xorm:"insecure_skip_verify"`
	BufferSize         int    `xorm:"'buffer_size' default 65535"`
	Description        string `xorm:"description"`
}

InfluxCfg is the main configuration for any InfluxDB TSDB swagger:model InfluxCfg

type MGroupsCfg

type MGroupsCfg struct {
	ID           string   `xorm:"'id' unique" binding:"Required"`
	Measurements []string `xorm:"-"`
	Description  string   `xorm:"description"`
}

MGroupsCfg measurement groups to assign to devices swagger:model MGroupsCfg

type MGroupsMeasurements

type MGroupsMeasurements struct {
	IDMGroupCfg      string `xorm:"id_mgroup_cfg"`
	IDMeasurementCfg string `xorm:"id_measurement_cfg"`
}

MGroupsMeasurements measurements contained on each Measurement Group

type MeasFilterCfg

type MeasFilterCfg struct {
	ID               string `xorm:"'id' unique" binding:"Required"`
	IDMeasurementCfg string `xorm:"id_measurement_cfg"`
	FType            string `xorm:"filter_type" binding:"Required"` // file/OIDCondition/CustomFilter
	FilterName       string `xorm:"filter_name" binding:"Required"` // valid identificator for the filter depending on the type
	EnableAlias      bool   `xorm:"enable_alias"`                   // only valid if file/Custom
	Description      string `xorm:"description"`
}

MeasFilterCfg the filter configuration swagger:model MeasFilterCfg

type MeasurementCfg

type MeasurementCfg struct {
	ID                string                   `xorm:"'id' unique" binding:"Required"`
	Name              string                   `xorm:"name" binding:"Required"`
	GetMode           string                   `xorm:"getmode" binding:"In(value,indexed,indexed_it,indexed_mit,indexed_multiple)"` // value ,indexed  (direct tag), indexed_it ( indirect_tag)
	IndexOID          string                   `xorm:"indexoid"`                                                                    // only valid if Indexed (direct or indirect)
	TagOID            string                   `xorm:"tagoid"`
	MultiTagOID       []MultipleTagOID         `xorm:"mtagoid"` // only valid if inderecta TAG indexeded
	IndexTag          string                   `xorm:"indextag"`
	IndexTagFormat    string                   `xorm:"indextagformat"`
	IndexAsValue      bool                     `xorm:"'indexasvalue' default 0"`
	MultiIndexCfg     []MultiIndexCfg          `xorm:"multiindex"`
	MultiIndexResult  string                   `xorm:"multiindexresult"`
	MultiIndexVersion string                   `xorm:"multiindexrversion"`
	Fields            []MeasurementFieldReport `xorm:"-"` // Got from MeasurementFieldCfg table
	FieldMetric       []*SnmpMetricCfg         `xorm:"-" json:"-"`
	EvalMetric        []*SnmpMetricCfg         `xorm:"-" json:"-"`
	OidCondMetric     []*SnmpMetricCfg         `xorm:"-" json:"-"`
	Freq              int                      `xorm:"'freq'" binding:"IntegerNotZero"`
	UpdateFltFreq     int                      `xorm:"'update_flt_freq'" binding:"UIntegerAndLessOne"`
	Description       string                   `xorm:"description"`
}

MeasurementCfg the measurement configuration swagger:model MeasurementCfg

func (*MeasurementCfg) CheckComputedMetricEval

func (mc *MeasurementCfg) CheckComputedMetricEval(parameters map[string]interface{}) error

CheckComputedMetricEval check for computed metrics based on Evalutation Execution

func (*MeasurementCfg) CheckComputedMetricVars

func (mc *MeasurementCfg) CheckComputedMetricVars(parameters map[string]interface{}) error

CheckComputedMetricVars check for computed metrics based on check if variable definition exist

func (*MeasurementCfg) GetAllUsedVarNamesInMetrics

func (mc *MeasurementCfg) GetAllUsedVarNamesInMetrics() ([]string, error)

GetAllUsedVarNamesInMetrics return all used Var names in Metrics

func (*MeasurementCfg) GetEvaluableVarNames

func (mc *MeasurementCfg) GetEvaluableVarNames() ([]string, error)

GetEvaluableVarNames returns an string array with all posible internal variable Names

func (*MeasurementCfg) GetExternalVars

func (mc *MeasurementCfg) GetExternalVars() ([]string, error)

GetExternalVars Get Needed External Variables in this Measurement

func (*MeasurementCfg) Init

func (mc *MeasurementCfg) Init(MetricCfg *map[string]*SnmpMetricCfg, varmap map[string]interface{}) error

Init initialize the measurement configuration

type MeasurementFieldCfg

type MeasurementFieldCfg struct {
	IDMeasurementCfg string `xorm:"id_measurement_cfg"`
	IDMetricCfg      string `xorm:"id_metric_cfg"`
	Report           int    `xorm:"'report' default 1"`
}

MeasurementFieldCfg the metrics contained on each measurement (to initialize on the fieldMetric array)

type MeasurementFieldReport

type MeasurementFieldReport struct {
	ID     string
	Report int
}

MeasurementFieldReport defines the report behaviour of each field

type MetricMultiMap

type MetricMultiMap struct {
	IType string
	IName string
	IConv string
	Value interface{}
}

MetricMultiMap Value

type MultiIndexCfg

type MultiIndexCfg struct {
	Label          string
	Description    string
	Dependency     string
	GetMode        string // indexed | indexed_it | indexed_mit
	IndexOID       string
	TagOID         string
	MultiTagOID    []MultipleTagOID
	IndexTag       string
	IndexTagFormat string
}

MultiIndexCfg defines an internal measurement that has its own lifecycle

type MultipleTagOID

type MultipleTagOID struct {
	TagOID      string
	IndexFormat string
}

MultipleTagOID defines TagOID to iterate over multiple tables to retrieve tag

type OidConditionCfg

type OidConditionCfg struct {
	ID          string `xorm:"'id' unique" binding:"Required"`
	IsMultiple  bool   `xorm:"is_multiple"`
	OIDCond     string `xorm:"cond_oid" binding:"Required"`
	CondType    string `xorm:"cond_type"`
	CondValue   string `xorm:"cond_value"`
	Description string `xorm:"description"`
}

OidConditionCfg condition config for filters and metrics swagger:model OidConditionCfg

func (*OidConditionCfg) Init

func (oid *OidConditionCfg) Init(dbc *DatabaseCfg) error

Init Initialize a OIDConditionCfg

type SelfMonConfig

type SelfMonConfig struct {
	Enabled           bool     `mapstructure:"enabled" envconfig:"SNMPCOL_SELFMON_ENABLED"`
	Freq              int      `mapstructure:"freq" envconfig:"SNMPCOL_SELFMON_FREQ"`
	Prefix            string   `mapstructure:"prefix" envconfig:"SNMPCOL_SELFMON_PREFIX"`
	InheritDeviceTags bool     `mapstructure:"inheritdevicetags" envconfig:"SNMPCOL_SELFMON_INHERIT_DEVICE_TAGS"`
	ExtraTags         []string `mapstructure:"extratags" envconfig:"SNMPCOL_SELFMON_EXTRATAGS"`
}

SelfMonConfig configuration for self monitoring

type SnmpDevFilters

type SnmpDevFilters struct {
	IDSnmpDev string `xorm:"id_snmpdev"`
	IDFilter  string `xorm:"id_filter"`
}

SnmpDevFilters filters to use with indexed measurement

type SnmpDevMGroups

type SnmpDevMGroups struct {
	IDSnmpDev   string `xorm:"id_snmpdev"`
	IDMGroupCfg string `xorm:"id_mgroup_cfg"`
}

SnmpDevMGroups Mgroups defined on each SnmpDevice

type SnmpDeviceCfg

type SnmpDeviceCfg struct {
	ID string `xorm:"'id' unique" binding:"Required"`
	// snmp connection config
	Host       string   `xorm:"host" binding:"Required;AlphaDashDot"`
	Port       int      `xorm:"port" binding:"Required"`
	SystemOIDs []string `xorm:"systemoids"` // for non MIB-2 based devices
	Retries    int      `xorm:"retries"`
	Timeout    int      `xorm:"timeout"`
	Repeat     int      `xorm:"repeat"`
	Active     bool     `xorm:"'active' default TRUE"`
	// snmp auth  config
	SnmpVersion       string `xorm:"snmpversion" binding:"Required;In(1,2c,3)"`
	Community         string `xorm:"community"`
	V3SecLevel        string `xorm:"v3seclevel"`
	V3AuthUser        string `xorm:"v3authuser"`
	V3AuthPass        string `xorm:"v3authpass"`
	V3AuthProt        string `xorm:"v3authprot"`
	V3PrivPass        string `xorm:"v3privpass"`
	V3PrivProt        string `xorm:"v3privprot"`
	V3ContextEngineID string `xorm:"v3contextengineid"`
	V3ContextName     string `xorm:"v3contextname"`
	// snmp workarround for some devices
	DisableBulk    bool  `xorm:"'disablebulk' default 0"`
	MaxRepetitions uint8 `xorm:"'maxrepetitions' default 50" binding:"Default(50);IntegerNotZero"`
	MaxOids        int   `xorm:"'maxoids' default 60"`
	// snmp runtime config
	Freq             int  `xorm:"'freq' default 60" binding:"Default(60);IntegerNotZero"`
	UpdateFltFreq    int  `xorm:"'update_flt_freq' default 60" binding:"Default(60);UIntegerAndLessOne"`
	ConcurrentGather bool `xorm:"'concurrent_gather' default 1"`

	OutDB    string `xorm:"outdb"`
	LogLevel string `xorm:"loglevel" binding:"Default(info)"`
	LogFile  string `xorm:"logfile"`

	SnmpDebug bool `xorm:"'snmpdebug' default 0"`
	// influx tags
	DeviceTagName  string   `xorm:"devicetagname" binding:"Default(hostname)"`
	DeviceTagValue string   `xorm:"devicetagvalue" binding:"Default(id)"`
	ExtraTags      []string `xorm:"extra-tags"`
	DeviceVars     []string `xorm:"devicevars"`
	Description    string   `xorm:"description"`
	// Filters for measurements
	MeasurementGroups []string `xorm:"-"`
	MeasFilters       []string `xorm:"-"`
}

SnmpDeviceCfg contains all snmp related device definitions swagger:model SnmpDeviceCfg

type SnmpMetricCfg

type SnmpMetricCfg struct {
	ID          string         `xorm:"'id' unique" binding:"Required"` // name of the key in the config array
	FieldName   string         `xorm:"field_name" binding:"Required"`
	Description string         `xorm:"description"`
	BaseOID     string         `xorm:"baseoid"`
	DataSrcType string         `xorm:"datasrctype"`
	GetRate     bool           `xorm:"getrate"` // ony Valid with COUNTERS
	Scale       float64        `xorm:"scale"`
	Shift       float64        `xorm:"shift"`
	IsTag       bool           `xorm:"'istag' default 0"`      // Not Valid on  MULTISTRINGPARSER
	ExtraData   string         `xorm:"extradata"`              // Only Valid with STRINGPARSER, MULTISTRINGPARSER, STRINGEVAL , BITS , BITSCHK, ENUM
	Conversion  ConversionMode `xorm:"'conversion' default 0"` // Conversion will be always float for
	Names       map[int]string `xorm:"-" json:"-"`             // BitString Name array
}

SnmpMetricCfg Metric config swagger:model SnmpMetricCfg

func (*SnmpMetricCfg) CheckEvalCfg

func (m *SnmpMetricCfg) CheckEvalCfg(parameters map[string]interface{}) error

CheckEvalCfg : check evaluated expresion based in govaluate

func (*SnmpMetricCfg) GetEvaluableVarNames

func (m *SnmpMetricCfg) GetEvaluableVarNames() ([]string, error)

GetEvaluableVarNames get a string array with all posible metric values to use in metric evaluatator

func (*SnmpMetricCfg) GetMetricHeader

func (m *SnmpMetricCfg) GetMetricHeader(report int) interface{}

GetMetricHeader Get Info

func (*SnmpMetricCfg) GetMultiStringTagFieldMap

func (m *SnmpMetricCfg) GetMultiStringTagFieldMap() ([]*MetricMultiMap, error)

GetMultiStringTagFieldMap get tag/field description map

func (*SnmpMetricCfg) GetUsedVarNames

func (m *SnmpMetricCfg) GetUsedVarNames() ([]string, error)

GetUsedVarNames Get Needed External Variables on this Metric ( only vaid in STRINGEVAL)

func (*SnmpMetricCfg) GetValidConversions

func (m *SnmpMetricCfg) GetValidConversions() ([]ConversionMode, ConversionMode, error)

GetValidConversions return Conversion Modes Array and the de default/sugested value beginning from 0

func (*SnmpMetricCfg) Init

func (m *SnmpMetricCfg) Init() error

Init Initializes Metric 3.- Check minimal data is set (pending) name, BaseOID BaseOID beginning with "." fieldname != null

Init initialize metrics

func (*SnmpMetricCfg) MarshalJSON

func (m *SnmpMetricCfg) MarshalJSON() ([]byte, error)

MarshalJSON marshall (not sure if needed here....)

func (*SnmpMetricCfg) UnmarshalJSON

func (m *SnmpMetricCfg) UnmarshalJSON(data []byte) error

UnmarshalJSON unmarshall for conversion mode

type VarCatalogCfg

type VarCatalogCfg struct {
	// Variable Name unique
	ID          string `xorm:"'id' unique" binding:"Required"`
	Type        string `xorm:"type" binding:"Required"`
	Value       string `xorm:"value"`
	Description string `xorm:"description"`
}

VarCatalogCfg is the main configuration for any InfluxDB TSDB swagger:model VarCatalogCfg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL