本文整理汇总了Golang中github.com/blacklightops/libbeat/logp.Err函数的典型用法代码示例。如果您正苦于以下问题:Golang Err函数的具体用法?Golang Err怎么用?Golang Err使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Err函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: Run
func (l *UdpInput) Run(output chan common.MapStr) error {
logp.Info("[UdpInput] Running UDP Input")
addr := net.UDPAddr{
Port: l.Port,
IP: net.ParseIP("0.0.0.0"),
}
server, err := net.ListenUDP("udp", &addr)
server.SetReadBuffer(1048576)
if err != nil {
logp.Err("couldn't start listening: " + err.Error())
return nil
}
logp.Info("[UdpInput] Listening on port %d", l.Port)
i := 0
for {
i++
buf := make([]byte, 4096)
rlen, addr, err := server.ReadFromUDP(buf)
if err != nil {
logp.Err("couldn't read from UDP: " + err.Error())
}
go l.handlePacket(buf, rlen, i, addr, output)
}
return nil
}
示例2: doStuff
func (l *TailInput) doStuff(output chan common.MapStr) {
now := func() time.Time {
t := time.Now()
return t
}
var line uint64 = 0
var read_timeout = 30 * time.Second
// open file
// basic error handling, if we hit an error, log and return
// this ends the currently running thread without impacting other threads
f, err := os.Open(l.FileName)
if err != nil {
logp.Err("Error opening file " + err.Error())
return
}
l.FileP = f
// seek to end
// for offset, we use the actual file offset
// we initialize it to the end of the file at time of open
l.offset, err = l.FileP.Seek(0, 2)
if err != nil {
logp.Err("Error seeking in file " + err.Error())
return
}
l.LastOpen = time.Now()
buffer := new(bytes.Buffer)
reader := bufio.NewReader(l.FileP)
for {
l.CheckReopen()
text, bytesread, err := readline(reader, buffer, read_timeout)
if err != nil && err != io.EOF {
// EOF errors are expected, since we are tailing the file
logp.Err("Error reading file " + err.Error())
return
}
if bytesread > 0 {
l.offset += int64(bytesread)
line++
event := common.MapStr{}
event["filename"] = l.FileName
event["line"] = line
event["message"] = text
event["offset"] = l.offset
event["type"] = l.Type
event.EnsureTimestampField(now)
event.EnsureCountField()
logp.Debug("tailinput", "InputEvent: %v", event)
output <- event // ship the new event downstream
}
}
}
示例3: UpdateLocalTopologyMap
// Update the local topology map
func (out *ElasticsearchOutput) UpdateLocalTopologyMap() {
// get all shippers IPs from Elasticsearch
TopologyMapTmp := make(map[string]string)
res, err := out.Conn.SearchUri(".packetbeat-topology", "server-ip", nil)
if err == nil {
for _, obj := range res.Hits.Hits {
var result QueryResult
err = json.Unmarshal(obj, &result)
if err != nil {
return
}
var pub PublishedTopology
err = json.Unmarshal(result.Source, &pub)
if err != nil {
logp.Err("json.Unmarshal fails with: %s", err)
}
// add mapping
ipaddrs := strings.Split(pub.IPs, ",")
for _, addr := range ipaddrs {
TopologyMapTmp[addr] = pub.Name
}
}
} else {
logp.Err("Getting topology map fails with: %s", err)
}
// update topology map
out.TopologyMap = TopologyMapTmp
logp.Debug("output_elasticsearch", "Topology map %s", out.TopologyMap)
}
示例4: Run
func (l *RedisInput) Run(output chan common.MapStr) error {
logp.Debug("redisinput", "Running Redis Input")
var keysScript = redis.NewScript(1, `return redis.call('KEYS', KEYS[1])`)
go func() {
redisURL := fmt.Sprintf("redis://%s:%d/%d", l.Host, l.Port, l.DB)
dialConnectTimeout := redis.DialConnectTimeout(3 * time.Second)
dialReadTimeout := redis.DialReadTimeout(10 * time.Second)
var backOffCount = 0
var backOffDuration time.Duration = 5 * time.Second
for {
logp.Debug("redisinput", "Connecting to: %s", redisURL)
server, err := redis.DialURL(redisURL, dialConnectTimeout, dialReadTimeout)
if err != nil {
logp.Err("couldn't start listening: " + err.Error())
return
}
logp.Debug("redisinput", "Connected to Redis Server")
reply, err := keysScript.Do(server, "*")
if err != nil {
logp.Err("An error occured while executing KEYS command: %s\n", err)
return
}
keys, err := redis.Strings(reply, err)
if err != nil {
logp.Err("An error occured while converting reply to String: %s\n", err)
return
}
for _, key := range keys {
logp.Debug("redisinput", "key is %s", key)
lineCount, err := l.handleConn(server, output, key)
if err == nil {
logp.Debug("redisinput", "Read %v events", lineCount)
backOffCount = 0
backOffDuration = time.Duration(backOffCount) * time.Second
time.Sleep(backOffDuration)
} else {
backOffCount++
backOffDuration = time.Duration(backOffCount) * time.Second
time.Sleep(backOffDuration)
}
}
defer server.Close()
}
}()
return nil
}
示例5: SendMessagesGoroutine
func (out *KafkaOutput) SendMessagesGoroutine() {
for {
select {
case queueMsg := <-out.sendingQueue:
if !out.connected {
logp.Debug("output_kafka", "Droping pkt ...")
continue
}
logp.Debug("output_kafka", "Send event to kafka")
out.Producer.Input() <- &sarama.ProducerMessage{
Topic: out.Topic,
Key: nil,
Value: &queueMsg,
}
case err := <-out.Producer.Errors():
logp.Err("Failed to publish event to kafka: %s", err)
out.connected = false
out.Close()
go out.Reconnect()
return
}
}
}
示例6: PublishIPs
// Each shipper publishes a list of IPs together with its name to Elasticsearch
func (out *ElasticsearchOutput) PublishIPs(name string, localAddrs []string) error {
if !out.ttlEnabled {
logp.Debug("output_elasticsearch", "Not publishing IPs because TTL was not yet confirmed to be enabled")
return nil
}
logp.Debug("output_elasticsearch", "Publish IPs %s with expiration time %d", localAddrs, out.TopologyExpire)
params := map[string]string{
"ttl": fmt.Sprintf("%dms", out.TopologyExpire),
"refresh": "true",
}
_, err := out.Conn.Index(
".packetbeat-topology", /*index*/
"server-ip", /*type*/
name, /* id */
params, /* parameters */
PublishedTopology{name, strings.Join(localAddrs, ",")} /* body */)
if err != nil {
logp.Err("Fail to publish IP addresses: %s", err)
return err
}
out.UpdateLocalTopologyMap()
return nil
}
示例7: averageSortedEvents
func (l *RedisInput) averageSortedEvents(sorted_events map[string][]common.MapStr) ([]common.MapStr, error) {
var output_events []common.MapStr
var merged_event common.MapStr
var metric_value_string string
//var metric_value_bytes []byte
metric_value := 0.0
for _, events := range sorted_events {
metric_value = 0.0
merged_event = common.MapStr{}
for _, event := range events {
merged_event.Update(event)
logp.Debug("groupstuff", "metric value: %v", event["metric_value"])
metric_value_string = event["metric_value"].(string)
// metric_value_bytes = []byte(metric_value_string)
// metric_value += float64(common.Bytes_Ntohll(metric_value_bytes))
metric_value_float, err := strconv.ParseFloat(metric_value_string, 65)
if err != nil {
logp.Err("Error parsing metric_value: %v", err)
}
metric_value += metric_value_float
}
logp.Debug("groupstuff", "the summed values is %v", metric_value)
logp.Debug("groupstuff", "the length is %v", float64(len(events)))
metric_value = metric_value / float64(len(events))
logp.Debug("groupstuff", "the avg value is %v", metric_value)
merged_event["metric_value"] = metric_value
output_events = append(output_events, merged_event)
}
return output_events, nil
}
示例8: Filter
//TODO: Check for Errors Here
func (jsonexpander *JSONExpander) Filter(event common.MapStr) (common.MapStr, error) {
text := event["message"]
text_string := text.(*string)
logp.Debug("jsonexpander", "Attempting to expand: %v", event)
if isJSONString(*text_string) {
data := []byte(*text_string)
err := json.Unmarshal(data, &event)
if err != nil {
logp.Err("jsonexpander", "Could not expand json data")
return event, nil
}
} else {
logp.Debug("jsonexpander", "Message does not appear to be JSON data: %s", text_string)
}
now := func() time.Time {
t := time.Now()
return t
}
event.EnsureTimestampField(now)
logp.Debug("jsonexpander", "Final Event: %v", event)
return event, nil
}
示例9: PrintReaderEvent
func (reader *ReaderType) PrintReaderEvent(event common.MapStr) {
json, err := json.MarshalIndent(event, "", " ")
if err != nil {
logp.Err("json.Marshal: %s", err)
} else {
logp.Debug("reader", "Reader: %s", string(json))
}
}
示例10: ProcessWindowsControlEvents
// On windows this creates a loop that only finishes when
// a Stop or Shutdown request is received. On non-windows
// platforms, the function does nothing. The stopCallback
// function is called when the Stop/Shutdown request is
// received.
func ProcessWindowsControlEvents(stopCallback func()) {
err := svc.Run(os.Args[0], &beatService{})
if err != nil {
logp.Err("Error: %v", err)
} else {
stopCallback()
}
}
示例11: PrintPublishEvent
func PrintPublishEvent(event common.MapStr) {
json, err := json.MarshalIndent(event, "", " ")
if err != nil {
logp.Err("json.Marshal: %s", err)
} else {
logp.Debug("publish", "Publish: %s", string(json))
}
}
示例12: publishFromQueue
func (publisher *PublisherType) publishFromQueue() {
for mapstr := range publisher.Queue {
err := publisher.publishEvent(mapstr)
if err != nil {
logp.Err("Publishing failed: %v", err)
}
}
}
示例13: InsertBulkMessage
// Insert a list of events in the bulkChannel
func (out *ElasticsearchOutput) InsertBulkMessage(bulkChannel chan interface{}) {
close(bulkChannel)
go func(channel chan interface{}) {
_, err := out.Conn.Bulk("", "", nil, channel)
if err != nil {
logp.Err("Fail to perform many index operations in a single API call: %s", err)
}
}(bulkChannel)
}
示例14: writeHeapProfile
func writeHeapProfile(filename string) {
f, err := os.Create(filename)
if err != nil {
logp.Err("Failed creating file %s: %s", filename, err)
return
}
pprof.WriteHeapProfile(f)
f.Close()
logp.Info("Created memory profile file %s.", filename)
}
示例15: PublishEvent
func (out *KafkaOutput) PublishEvent(ts time.Time, event common.MapStr) error {
json_event, err := json.Marshal(event)
if err != nil {
logp.Err("Failed to convert the event to JSON: %s", err)
return err
}
out.sendingQueue <- KafkaQueueMsg{msg: json_event}
logp.Debug("output_kafka", "Publish event")
return nil
}