func (c *Client) AddMetric(envelope *events.Envelope) { c.totalMessagesReceived++ if envelope.GetEventType() != events.Envelope_ValueMetric && envelope.GetEventType() != events.Envelope_CounterEvent { return } key := metricKey{ eventType: envelope.GetEventType(), name: getName(envelope), deployment: envelope.GetDeployment(), job: envelope.GetJob(), index: envelope.GetIndex(), ip: envelope.GetIp(), } mVal := c.metricPoints[key] value := getValue(envelope) mVal.tags = getTags(envelope) mVal.points = append(mVal.points, Point{ Timestamp: envelope.GetTimestamp() / int64(time.Second), Value: value, }) c.metricPoints[key] = mVal }
func getTags(envelope *events.Envelope) poster.Tags { ret := poster.Tags{ Deployment: envelope.GetDeployment(), Job: envelope.GetJob(), Index: envelope.GetIndex(), IP: envelope.GetIp(), } return ret }
func getTags(envelope *events.Envelope) []string { var tags []string tags = appendTagIfNotEmpty(tags, "deployment", envelope.GetDeployment()) tags = appendTagIfNotEmpty(tags, "job", envelope.GetJob()) tags = appendTagIfNotEmpty(tags, "index", envelope.GetIndex()) tags = appendTagIfNotEmpty(tags, "ip", envelope.GetIp()) return tags }
func (e *Event) AnnotateWithEnveloppeData(msg *events.Envelope) { e.Fields["origin"] = msg.GetOrigin() e.Fields["deployment"] = msg.GetDeployment() e.Fields["ip"] = msg.GetIp() e.Fields["job"] = msg.GetJob() e.Fields["index"] = msg.GetIndex() //e.Fields["tags"] = msg.GetTags() e.Type = msg.GetEventType().String() }
//EventToJSON turns a firehose event into a json representation func EventToJSON(event *events.Envelope) *[]byte { props := map[string]interface{}{ "time": event.GetTimestamp() / 1000000000, "origin": event.GetOrigin(), "deployment": event.GetDeployment(), "job": event.GetJob(), "index": event.GetIndex(), "ip": event.GetIp(), "token": mixPanelToken, } data := map[string]interface{}{ "event": event.GetEventType().String(), "properties": props, } j, err := json.Marshal(data) if nil != err { log.Print("Failed to marshal event") log.Print(data) } return &j }