func dispatch(key string, now time.Time, value float64, prefix string) { vl := api.ValueList{ Identifier: api.Identifier{ Host: exec.Hostname(), Plugin: fmt.Sprintf("%snet", prefix), PluginInstance: key}, Time: now, Interval: exec.Interval(), Values: []api.Value{api.Gauge(value)}, } exec.Putval.Write(vl) for _, client := range clients { if err := client.Write(vl); err != nil { log.Printf("[WARN] unable to write to client:%s, err:%s", client, err.Error()) } } }
func main() { if len(os.Args) < 2 { log.Fatalf("[ERROR] %s requires more arguments!\n", os.Args[0]) } addresses := strings.Fields(os.Args[1]) clients = make([]*network.Client, len(addresses)) index := 0 for _, address := range addresses { client, err := network.Dial(address, network.ClientOptions{}) if err != nil { log.Printf("[WARN] unable to connect to %s!\n", address) continue } clients[index] = client index += 1 defer client.Close() } e := exec.NewExecutor() e.VoidCallback(sendNetUsage, exec.Interval()) e.Run() }