コード例 #1
0
ファイル: agent.go プロジェクト: 0-T-0/amonagent
// GatherAndSend - XXX
func (a *Agent) GatherAndSend() error {

	allMetrics := collectors.CollectAllData()
	err := remote.SendData(allMetrics)
	if err != nil {
		return fmt.Errorf("Can't connect to the Amon API on %s\n", err.Error())
	}
	return nil
}
コード例 #2
0
ファイル: agent.go プロジェクト: amonapp/amonagent
// GatherAndSend - XXX
func (a *Agent) GatherAndSend(debug bool) error {

	allMetrics := collectors.CollectAllData(a.ConfiguredPlugins)

	log.Infof("Metrics collected (Interval:%s)\n", a.Interval)

	err := remote.SendData(allMetrics, debug)
	if err != nil {
		return fmt.Errorf("Can't connect to the Amon API on %s\n", err.Error())
	}

	return nil
}
コード例 #3
0
ファイル: agent.go プロジェクト: 0-T-0/amonagent
// Test - XXX
func (a *Agent) Test(config settings.Struct) error {

	allMetrics := collectors.CollectAllData()

	fmt.Println("\n------------------")
	fmt.Println("\033[92mCollecting Metrics: \033[0m")
	fmt.Println("")
	fmt.Println(allMetrics)
	fmt.Println("\n------------------")

	fmt.Println("\033[92mTesting settings: \033[0m")
	fmt.Println("")
	machineID := collectors.MachineID()

	if len(machineID) == 0 && len(config.ServerKey) == 0 {
		fmt.Println("Can't find Machine ID (looking in /etc/opt/amonagent/machine-id, /etc/machine-id and /var/lib/dbus/machine-id).")
		fmt.Println("This usually means D-bus is missing on this server. To solve this problem")
		fmt.Println("---")
		fmt.Println("On RPM distros:")
		fmt.Println("rpm install dbus")
		fmt.Println("dbus-uuidgen > /etc/opt/amonagent/machine-id")
		fmt.Println("---")
		fmt.Println("On Debian distros:")
		fmt.Println("apt-get install dbus")
		fmt.Println("dbus-uuidgen > /etc/opt/amonagent/machine-id")
		fmt.Println("---")
		fmt.Println("Or alternatively, you can 'Add Server' from the Amon Interface and paste the Server Key value")
		fmt.Println("as server_key in /etc/opt/amonagent.conf")

	}

	fmt.Println("\n------------------")

	url := remote.SystemURL()
	fmt.Printf("\033[92m\nSending data to %s \033[0m", url)

	err := remote.SendData(allMetrics)
	if err != nil {
		return fmt.Errorf("%s\n", err.Error())
	}

	return nil
}
コード例 #4
0
ファイル: agent.go プロジェクト: amonapp/amonagent
// Test - XXX
func (a *Agent) Test(config settings.Struct) error {

	allMetrics := collectors.CollectAllData(a.ConfiguredPlugins)

	ProcessesData := collectors.CollectProcessData()
	SystemData := collectors.CollectSystemData()
	HostData := collectors.CollectHostData()

	fmt.Println("\n------------------")
	fmt.Println("\033[92mSystem Metrics: \033[0m")
	fmt.Println("")
	fmt.Println(SystemData)
	fmt.Println("\n------------------")

	fmt.Println("\n------------------")
	fmt.Println("\033[92mProcess Metrics: \033[0m")
	fmt.Println("")
	fmt.Println(ProcessesData)
	fmt.Println("\n------------------")

	fmt.Println("\n------------------")
	fmt.Println("\033[92mPlugins: \033[0m")
	fmt.Println("")

	for _, p := range a.ConfiguredPlugins {
		start := time.Now()
		PluginResult, err := p.Plugin.Collect()
		if err != nil {
			log.Errorf("Can't get stats for plugin: %s", err)
		}

		fmt.Println("\n------------------")
		fmt.Print("\033[92mPlugin: ")
		fmt.Print(p.Name)
		fmt.Print("\033[0m \n")
		fmt.Println(PluginResult)

		elapsed := time.Since(start)
		fmt.Printf("\n Executed in %s", elapsed)

	}

	fmt.Println("\n------------------")
	fmt.Println("\033[92mHost Data: \033[0m")
	fmt.Println("")
	fmt.Println(HostData)
	fmt.Println("\n------------------")

	fmt.Println("\033[92mTesting settings: \033[0m")
	fmt.Println("")
	machineID := collectors.GetOrCreateMachineID()

	if len(machineID) == 0 && len(config.ServerKey) == 0 {
		fmt.Println("Can't find Machine ID (looking in /etc/opt/amonagent/machine-id).")
		fmt.Println("To solve this problem, run the following command:")
		fmt.Println("---")
		fmt.Println("amonagent -machineid")
		fmt.Println("---")

	} else {
		fmt.Println("Settings OK")
	}

	fmt.Println("\n------------------")

	err := remote.SendData(allMetrics, true)
	if err != nil {
		return fmt.Errorf("%s\n", err.Error())
	}

	return nil
}