run

package
v0.7.0 Latest Latest
Warning

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

Go to latest
Published: Apr 12, 2020 License: GPL-3.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Cmd = &cobra.Command{
	Use:     "run",
	Example: "run --config ./config/vigie.toml",
	Short:   "Start Tests",
	PreRun: func(cmd *cobra.Command, args []string) {
		//
		// Create Vigie Instance
		//
		var err error

		vigieInstance, err = vigie.NewVigie()
		if err != nil {
			utils.Log.WithFields(logrus.Fields{"component": "vigie", "status": "error", "error": "Vigie cannot start"}).Fatal(err)
			os.Exit(1)
		}

	},
	Run: func(cmd *cobra.Command, args []string) {

		vigieConf := loadVigieConfigFile(configfile)

		utils.InitLogger(vigieConf.Log)

		vigieConf.Host.AddHostSytemInfo()
		vigieInstance.HostInfo = vigieConf.Host

		_, err := govalidator.ValidateStruct(vigieConf)
		if err != nil {
			utils.Log.WithFields(logrus.Fields{"component": "configfile", "status": "invalid", "error": "Vigie Config File is invalid"}).Fatal(err)
			os.Exit(1)
		}

		utils.Log.WithFields(logrus.Fields{
			"version":    version.LdVersion,
			"goruntime":  runtime.Version(),
			"arch":       fmt.Sprintf("%s/%s", runtime.GOOS, runtime.GOARCH),
			"builddate":  version.LdBuildDate,
			"configfile": configfile,
		}).Infof("Vigie")

		if vigieConf.API.Enable {
			errWebAPI := webapi.InitWebAPI(vigieConf.API, vigieInstance)
			if errWebAPI != nil {
				utils.Log.WithFields(logrus.Fields{"component": "api", "status": "failed", "error": errWebAPI}).Fatal("[ConfWebAPI] has failed to start")
				os.Exit(2)
			}
		}

		if vigieConf.InfluxDB.Enable {
			idb, errIDB := tsdb.NewInfluxDB(vigieConf.InfluxDB)
			if errIDB != nil {
				utils.Log.Fatal("Vigie failed to connect with InfluxDB: ", errIDB)
			}
			tsdb.TsdbManager.AddTsdb(idb)
		}

		if vigieConf.Warp10.Enable {
			w10, errW10 := tsdb.NewWarp10(vigieConf.Warp10)
			if errW10 != nil {
				utils.Log.Fatal("Vigie failed to connect with Warp10: ", errW10)
			}
			tsdb.TsdbManager.AddTsdb(w10)
		}

		if vigieConf.Prometheus.Enable {
			go promexporter.InitPromExporter(vigieConf.Prometheus)
		}

		if vigieConf.Alerting.Enable {
			go alertmanager.InitAlertManager(vigieConf.Alerting, vigieInstance.HostInfo.Name, vigieInstance.HostInfo.URL)
		}

		vigieInstance.ImportManager, err = load.InitImportManager(vigieConf.Import)
		if err != nil {
			utils.Log.WithFields(logrus.Fields{"component": "import", "status": "failed", "error": err}).Fatal("[ConfImport] fail to validate the import.")
			os.Exit(1)
		}

		core.VigieServer.CacheDNS, _ = dnscache.NewCachedResolver()

		err = vigieInstance.Start()
		if err != nil {
			utils.Log.Fatal("Vigie failed to launch: ", err)
			os.Exit(1)
		}

	},
}

Cmd run

Functions

This section is empty.

Types

type VigieConf

type VigieConf struct {
	ApiVersion  float32
	Environment string // Production, Dev
	Host        vigie.HostInfo
	Import      load.ConfImport
	API         webapi.ConfWebAPI
	Prometheus  promexporter.ConfPrometheus
	InfluxDB    tsdb.ConfInfluxDB
	Warp10      tsdb.ConfWarp10
	Datadog     tsdb.ConfDatadog
	Alerting    alertmanager.ConfAlerting
	Log         utils.LogConf
}

Jump to

Keyboard shortcuts

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