• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Golang logrus.WithFields函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Golang中github.com/elleFlorio/gru/Godeps/_workspace/src/github.com/Sirupsen/logrus.WithFields函数的典型用法代码示例。如果您正苦于以下问题:Golang WithFields函数的具体用法?Golang WithFields怎么用?Golang WithFields使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了WithFields函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。

示例1: updateMetric

func updateMetric(target string, metricType enum.MetricType, metric string, toAdd []float64) {
	defer mutex_instMet.Unlock()

	mutex_instMet.Lock()
	switch metricType {
	case enum.METRIC_T_BASE:
		if toUpdateInstace, ok := instancesMetrics[target]; ok {
			values := toUpdateInstace.BaseMetrics[metric]
			values = append(values, toAdd...)
			toUpdateInstace.BaseMetrics[metric] = values
		} else {
			log.WithFields(log.Fields{
				"target": target,
				"metric": metric,
			}).Errorln("Cannot update instance metric: unknown instance")
		}
	case enum.METRIC_T_USER:
		if toUpdateService, ok := servicesMetrics[target]; ok {
			values := toUpdateService.UserMetrics[metric]
			values = append(values, toAdd...)
			toUpdateService.UserMetrics[metric] = values
		} else {
			log.WithFields(log.Fields{
				"target": target,
				"metric": metric,
			}).Errorln("Cannot update service metric: unknown service")
		}
	}
}
开发者ID:elleFlorio,项目名称:gru,代码行数:29,代码来源:metric-man.go


示例2: AssignSpecifiPortsToService

func AssignSpecifiPortsToService(name string, id string, ports map[string][]string) error {
	defer runtime.Gosched()
	mutex_port.Lock()
	servicePorts := resources.Network.ServicePorts[name]

	// Check if ALL the bindings are possible
	// Otherwise "abort" the operation
	for guest, bindings := range ports {
		status := servicePorts.Status[guest]
		for _, binding := range bindings {
			if contains(binding, status.Occupied) {
				servicePorts.LastAssigned = make(map[string][]string)
				mutex_port.Unlock()
				return errPortAlreadyOccupied
			}
		}
	}

	for guest, bindings := range ports {
		status := servicePorts.Status[guest]
		for _, binding := range bindings {
			if contains(binding, status.Available) {
				status.Available, status.Occupied = moveSpecificItem(binding, status.Available, status.Occupied)
			} else {
				log.WithFields(log.Fields{
					"service": name,
					"guest":   guest,
					"port":    binding,
				}).Warnln("Cannot find port in available ones. Adding it to occupied")
				status.Occupied = append(status.Occupied, binding)
			}
		}

		servicePorts.Status[guest] = status
		servicePorts.LastAssigned = ports
	}

	resources.Network.ServicePorts[name] = servicePorts
	instanceBindings[id] = ports

	mutex_port.Unlock()

	log.WithFields(log.Fields{
		"service":  name,
		"instance": id,
		"ports":    ports,
	}).Debugln("Assigned ports to service instance")
	return nil
}
开发者ID:elleFlorio,项目名称:gru,代码行数:49,代码来源:res-manager.go


示例3: readCommand

func readCommand(r *http.Request) (Command, error) {
	var err error
	var cmd Command

	body, err := ioutil.ReadAll(io.LimitReader(r.Body, 1048576))
	if err != nil {
		log.WithField("err", err).Errorln("Error reading command body")
		return Command{}, err
	}

	if err = r.Body.Close(); err != nil {
		log.WithField("err", err).Errorln("Error closing command body")
		return Command{}, err
	}

	if err = json.Unmarshal(body, &cmd); err != nil {
		log.WithField("err", err).Errorln("Error unmarshaling command body")
		return Command{}, err
	}

	cmd.Timestamp = time.Now()

	log.WithFields(log.Fields{
		"name":      cmd.Name,
		"target":    cmd.Target,
		"timestamp": cmd.Timestamp,
	}).Debugln("Received command")

	return cmd, nil
}
开发者ID:elleFlorio,项目名称:gru,代码行数:30,代码来源:handlers-commands.go


示例4: RequestPortsForService

func RequestPortsForService(name string) (map[string]string, error) {
	defer runtime.Gosched()
	mutex_port.Lock()
	servicePorts := resources.Network.ServicePorts[name]

	// Check if all the ports can be assigned
	// otherwise "abort" the operation
	for _, host := range servicePorts.Status {
		if len(host.Available) < 1 {
			servicePorts.LastRequested = make(map[string]string)
			resources.Network.ServicePorts[name] = servicePorts
			mutex_port.Unlock()
			return make(map[string]string), ErrNoAvailablePorts
		}
	}

	requestedPorts := make(map[string]string)
	for guest, host := range servicePorts.Status {
		requestedPorts[guest] = host.Available[len(host.Available)-1]
	}
	servicePorts.LastRequested = requestedPorts
	resources.Network.ServicePorts[name] = servicePorts

	mutex_port.Unlock()

	log.WithFields(log.Fields{
		"service":        name,
		"requestedPorts": requestedPorts,
	}).Debugln("Requested ports for service")
	return requestedPorts, nil
}
开发者ID:elleFlorio,项目名称:gru,代码行数:31,代码来源:res-manager.go


示例5: stopInstance

func stopInstance(name string, instance string) {
	log.Debugln("Changing instance status to stop...")
	status := srv.GetServiceInstanceStatus(name, instance)
	if status == enum.STOPPED {
		log.Debugln("Instance already stopped")
		return
	}

	err := srv.ChangeServiceInstanceStatus(name, instance, status, enum.STOPPED)
	if err != nil {
		log.WithField("err", err).Errorln("Cannot stop service instance")
		return
	}

	log.Debugln("Updating events...")
	evt_mutex.Lock()
	srvEvents := events.Service[name]
	srvEvents.Stop = append(srvEvents.Stop, instance)
	events.Service[name] = srvEvents
	evt_mutex.Unlock()

	log.Debugln("Unregistering instance...")
	srv.UnregisterServiceInstance(name, instance)

	log.WithFields(log.Fields{
		"service": name,
		"id":      instance,
	}).Infoln("stopped instance")
}
开发者ID:elleFlorio,项目名称:gru,代码行数:29,代码来源:event-man.go


示例6: computeSysMetrics

func computeSysMetrics(instMetrics map[string]data.MetricData) data.MetricData {
	// TODO - improve by adding capacity
	baseMetrics := make(map[string]float64)
	cpuSys := 0.0
	memSys := make([]float64, 0, len(instMetrics))
	for instance, metrics := range instMetrics {
		service, err := srv.GetServiceById(instance)
		if err != nil {
			log.WithFields(log.Fields{
				"instance": instance,
			}).Errorln("Cannot find service by instance")
		} else {
			instCpus := service.Docker.CPUnumber
			instCpuValue := metrics.BaseMetrics[enum.METRIC_CPU_AVG.ToString()] * float64(instCpus)
			// CPU
			cpuSys += instCpuValue

			// MEM
			// TODO
		}
	}

	baseMetrics[enum.METRIC_CPU_AVG.ToString()] = cpuSys / float64(res.GetResources().CPU.Total)
	baseMetrics[enum.METRIC_MEM_AVG.ToString()] = utils.Mean(memSys)
	sysMetrics := data.MetricData{
		BaseMetrics: baseMetrics,
	}

	return sysMetrics

}
开发者ID:elleFlorio,项目名称:gru,代码行数:31,代码来源:metric-man.go


示例7: GetCoresAvailable

func GetCoresAvailable(number int) (string, bool) {
	defer runtime.Gosched()

	cores_str := make([]string, 0, number)
	mutex_cpu.RLock()
	for i := 0; i < len(resources.CPU.Cores); i++ {
		if resources.CPU.Cores[i] == true {
			cores_str = append(cores_str, strconv.Itoa(i))
		}

		if len(cores_str) >= number {
			break
		}
	}

	if len(cores_str) < number {
		log.Debugln("Error getting available cores: number of free cores < ", number)
		mutex_cpu.RUnlock()
		return "", false
	}

	mutex_cpu.RUnlock()

	cores := strings.Join(cores_str, ",")
	log.WithFields(log.Fields{
		"number": number,
		"cores":  cores,
	}).Debugln("Getting available cores")
	return cores, true
}
开发者ID:elleFlorio,项目名称:gru,代码行数:30,代码来源:res-manager.go


示例8: keepAlive

func keepAlive(name string, id string) {
	var err error
	discoveryConf := cfg.GetAgentDiscovery()
	ticker := time.NewTicker(time.Duration(discoveryConf.TTL-1) * time.Second)
	opt := discovery.Options{
		"TTL": time.Duration(discoveryConf.TTL) * time.Second,
	}

	ch_stop := ch.CreateInstanceChannel(id)

	isntanceKey := discoveryConf.AppRoot + "/" + name + "/" + id
	instanceValue := addressMap[id]

	for {
		select {
		case <-ticker.C:
			err = discovery.Set(isntanceKey, instanceValue, opt)
			if err != nil {
				log.WithFields(log.Fields{
					"service":  name,
					"instance": id,
					"address":  instanceValue,
					"err":      err,
				}).Errorln("Error keeping instance alive")
			}
		case <-ch_stop:
			log.Debugln("Stopping keep alive routine")
			return
		}
	}
}
开发者ID:elleFlorio,项目名称:gru,代码行数:31,代码来源:discovery.go


示例9: updateNodeResources

func updateNodeResources() {
	res.ComputeUsedResources()

	log.WithFields(log.Fields{
		"totalcpu": res.GetResources().CPU.Total,
		"usedcpu":  res.GetResources().CPU.Used,
		"totalmem": res.GetResources().Memory.Total,
		"usedmem":  res.GetResources().Memory.Used,
	}).Debugln("Updated node resources")
}
开发者ID:elleFlorio,项目名称:gru,代码行数:10,代码来源:monitor.go


示例10: executeActions

func executeActions(target *cfg.Service, actions []enum.Action) {
	var err error
	for _, actionType := range actions {
		config := buildConfig(target, actionType)
		actExecutor := action.Get(actionType)
		err = actExecutor.Run(config)
		if err != nil {
			log.WithFields(log.Fields{
				"err":    err,
				"action": actionType.ToString(),
			}).Errorln("Action not executed")
		}

		log.WithFields(log.Fields{
			"target": target.Name,
			"action": actionType.ToString(),
		}).Infoln("Action executed")
	}
}
开发者ID:elleFlorio,项目名称:gru,代码行数:19,代码来源:executor.go


示例11: displayPolicy

func displayPolicy(chosenPolicy *data.Policy) {
	targets := make([]string, 0, len(chosenPolicy.Targets))
	for _, target := range chosenPolicy.Targets {
		targets = append(targets, target)
	}

	log.WithFields(log.Fields{
		"name":    chosenPolicy.Name,
		"weight":  fmt.Sprintf("%.2f", chosenPolicy.Weight),
		"targets": targets,
	}).Infoln("Policy to actuate")
}
开发者ID:elleFlorio,项目名称:gru,代码行数:12,代码来源:planner.go


示例12: initializeStorage

func initializeStorage() {
	_, err := storage.New(cfg.GetAgentStorage().StorageService)
	if err != nil {
		log.WithFields(log.Fields{
			"status":  "warning",
			"error":   err,
			"default": storage.Name(),
		}).Warnln("Error initializing storage service")
	} else {
		log.WithField(storage.Name(), "ok").Infoln("Storage service initialized")
	}
}
开发者ID:elleFlorio,项目名称:gru,代码行数:12,代码来源:join.go


示例13: initializeMetricSerivice

func initializeMetricSerivice() {
	_, err := metric.New(cfg.GetAgentMetric().MetricService, cfg.GetAgentMetric().Configuration)
	if err != nil {
		log.WithFields(log.Fields{
			"status":  "warning",
			"error":   err,
			"default": metric.Name(),
		}).Warnln("Error initializing metric service")
	} else {
		log.WithField(metric.Name(), "ok").Infoln("Metric service initialized")
	}
}
开发者ID:elleFlorio,项目名称:gru,代码行数:12,代码来源:join.go


示例14: initiailizeMonitoring

func initiailizeMonitoring() {
	defer log.Infoln("Initializing autonomic monitoring")
	ch_aut_err := chn.GetAutonomicErrChannel()
	enableLogReading = cfg.GetAgentAutonomic().EnableLogReading
	mtr.Initialize(srv.List())

	// Start log reader if needed
	if enableLogReading {
		lgr.StartLogReader()
		log.WithField("logreader", enableLogReading).Debugln("Log reading is enabled")
	}

	// Get the list of containers (running or not) to monitor
	containers, err := container.Docker().Client.ListContainers(true, false, "")
	if err != nil {
		log.WithField("err", err).Debugln("Error monitoring containers")
		ch_aut_err <- err
	}

	// Start the monitor for each configured service
	for _, c := range containers {
		info, _ := container.Docker().Client.InspectContainer(c.Id)
		status := getContainerStatus(info)
		service, err := srv.GetServiceByImage(c.Image)
		if err != nil {
			log.WithFields(log.Fields{
				"err":   err,
				"image": c.Image,
			}).Warningln("Error monitoring service")
		} else {
			e := evt.Event{
				Service:  service.Name,
				Image:    c.Image,
				Instance: c.Id,
				Status:   status,
			}

			evt.HandleCreateEvent(e)
			evt.HanldeStartEvent(e)
			mtr.AddInstance(c.Id)
			if _, ok := instBuffer[c.Id]; !ok {
				instBuffer[c.Id] = instanceMetricBuffer{
					cpuInst: utils.BuildBuffer(c_B_SIZE),
					cpuSys:  utils.BuildBuffer(c_B_SIZE),
				}
			}
			container.Docker().Client.StartMonitorStats(c.Id, statCallBack, ch_mnt_stats_err)
			if status == enum.PENDING && enableLogReading {
				startMonitorLog(c.Id)
			}
		}
	}
}
开发者ID:elleFlorio,项目名称:gru,代码行数:53,代码来源:monitor.go


示例15: FreePortsFromService

func FreePortsFromService(name string, id string) {
	defer runtime.Gosched()
	mutex_port.Lock()
	servicePorts := resources.Network.ServicePorts[name]
	if ports, ok := instanceBindings[id]; ok {
		for guest, bindings := range ports {
			status := servicePorts.Status[guest]
			for _, binding := range bindings {
				if contains(binding, status.Occupied) {
					status.Occupied, status.Available = moveSpecificItem(binding, status.Occupied, status.Available)
				} else {
					log.WithFields(log.Fields{
						"service":  name,
						"instance": id,
						"guest":    guest,
						"host":     binding,
					}).Warnln("Cannot find port in occupied list")
				}

			}

			servicePorts.Status[guest] = status
		}

		resources.Network.ServicePorts[name] = servicePorts
		delete(instanceBindings, id)
		log.WithFields(log.Fields{
			"service":  name,
			"instance": id,
			"ports":    ports,
		}).Debugln("Released ports of service instance")
	} else {
		log.WithFields(log.Fields{
			"service":  name,
			"instance": id,
		}).Warnln("Cannot find instance id in port map")
	}

	mutex_port.Unlock()
}
开发者ID:elleFlorio,项目名称:gru,代码行数:40,代码来源:res-manager.go


示例16: GetAnalyticsSystem

// /gru/v1/analytics/system
func GetAnalyticsSystem(w http.ResponseWriter, r *http.Request) {
	analytics := analyzer.GetSystemAnalytics()

	w.Header().Set("Content-Type", "application/json; charset=UTF-8")
	w.WriteHeader(http.StatusOK)
	if err := json.NewEncoder(w).Encode(analytics); err != nil {
		log.WithFields(log.Fields{
			"status":  "http response",
			"request": "GetAnalyticsSystem",
			"error":   err,
		}).Errorln("API Server")
	}
}
开发者ID:elleFlorio,项目名称:gru,代码行数:14,代码来源:handlers-analytics.go


示例17: displayStatsOfServices

func displayStatsOfServices(stats data.GruStats) {
	for name, value := range stats.Metrics.Service {
		service, _ := srv.GetServiceByName(name)
		log.WithFields(log.Fields{
			"pending:": len(service.Instances.Pending),
			"running:": len(service.Instances.Running),
			"stopped:": len(service.Instances.Stopped),
			"paused:":  len(service.Instances.Paused),
			"cpu avg":  fmt.Sprintf("%.2f", value.BaseMetrics[enum.METRIC_CPU_AVG.ToString()]),
			"mem avg":  fmt.Sprintf("%.2f", value.BaseMetrics[enum.METRIC_MEM_AVG.ToString()]),
		}).Infoln("Stats computed: ", name)
	}
}
开发者ID:elleFlorio,项目名称:gru,代码行数:13,代码来源:monitor.go


示例18: GetPortBindings

func GetPortBindings(id string) (map[string][]string, error) {
	info, err := docker.Client.InspectContainer(id)
	if err != nil {
		log.WithFields(log.Fields{
			"id":  id,
			"err": err,
		}).Errorln("Error inspecting instance")
	}

	portBindings := createPortBindings(info.HostConfig.PortBindings)

	return portBindings, err
}
开发者ID:elleFlorio,项目名称:gru,代码行数:13,代码来源:docker.go


示例19: ComputeMetricAnalytics

func ComputeMetricAnalytics(service string, metrics map[string]float64) map[string]float64 {
	expressions := cfg.GetAnalyticExpr()
	srvExprList := srv.GetServiceAnalyticsExprList(service)
	srvConstraints := srv.GetServiceConstraints(service)
	metricAnalytics := make(map[string]float64, len(expressions))

	for _, expr := range srvExprList {
		if curExpr, ok := expressions[expr]; ok {
			log.WithField("expr", expr).Debugln("Evaluating expression")
			toEval := buildExpression(curExpr, metrics, srvConstraints)
			result, err := evaler.Eval(toEval)
			if err != nil {
				log.WithFields(log.Fields{
					"err":  err,
					"expr": toEval,
				}).Warnln("Error evaluating expression")

				metricAnalytics[expr] = 0.0
			} else {
				value := evaler.BigratToFloat(result)
				value = math.Min(value, 1.0)
				value = math.Max(value, 0.0)
				metricAnalytics[expr] = value
			}

			log.WithFields(log.Fields{
				"service": service,
				"expr":    expr,
				"value":   metricAnalytics[expr],
			}).Debugln("Expression evaluated")

		} else {
			log.WithField("expr", expr).Errorln("Cannot compute expression: expression unknown")
		}
	}

	return metricAnalytics
}
开发者ID:elleFlorio,项目名称:gru,代码行数:38,代码来源:eval-man.go


示例20: GetDiscoveryPort

func GetDiscoveryPort(name string) string {
	srv, err := GetServiceByName(name)
	if err != nil {
		log.WithFields(log.Fields{
			"err":     err,
			"service": name,
		}).Debugln("Error getting discovery port")

		return ""
	}

	return srv.DiscoveryPort

}
开发者ID:elleFlorio,项目名称:gru,代码行数:14,代码来源:discovery.go



注:本文中的github.com/elleFlorio/gru/Godeps/_workspace/src/github.com/Sirupsen/logrus.WithFields函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Golang assert.Equal函数代码示例发布时间:2022-05-23
下一篇:
Golang logrus.WithField函数代码示例发布时间:2022-05-23
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap