/
message_generator.go
105 lines (87 loc) · 2.53 KB
/
message_generator.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
package messagegenerator
import (
"time"
"github.com/cloudfoundry/loggregatorlib/logmessage"
"github.com/cloudfoundry/sonde-go/events"
"github.com/gogo/protobuf/proto"
)
type ValueMetricGenerator struct{}
func NewValueMetricGenerator() *ValueMetricGenerator {
return &ValueMetricGenerator{}
}
func (*ValueMetricGenerator) Generate() []byte {
return BasicValueMetric()
}
func BasicValueMetric() []byte {
message, _ := proto.Marshal(BasicValueMetricEnvelope("test-origin"))
return message
}
func BasicValueMetricEnvelope(origin string) *events.Envelope {
return &events.Envelope{
Origin: proto.String(origin),
EventType: events.Envelope_ValueMetric.Enum(),
ValueMetric: &events.ValueMetric{
Name: proto.String("fake-metric-name"),
Value: proto.Float64(42),
Unit: proto.String("fake-unit"),
},
}
}
type LogMessageGenerator struct {
appID string
}
func NewLogMessageGenerator(appID string) *LogMessageGenerator {
return &LogMessageGenerator{
appID: appID,
}
}
func (l *LogMessageGenerator) Generate() []byte {
message, _ := proto.Marshal(BasicLogMessageEnvelope("test-origin", l.appID))
return message
}
func BasicCounterEvent(origin string) *events.Envelope {
return &events.Envelope{
Origin: proto.String(origin),
EventType: events.Envelope_CounterEvent.Enum(),
CounterEvent: &events.CounterEvent{
Name: proto.String("fake-counter-event"),
Delta: proto.Uint64(1),
Total: proto.Uint64(2),
},
}
}
func BasicLogMessageEnvelope(origin string, appID string) *events.Envelope {
return &events.Envelope{
Origin: proto.String(origin),
EventType: events.Envelope_LogMessage.Enum(),
LogMessage: &events.LogMessage{
Message: []byte("test message"),
MessageType: events.LogMessage_OUT.Enum(),
Timestamp: proto.Int64(time.Now().UnixNano()),
AppId: proto.String(appID),
},
}
}
type LegacyLogGenerator struct{}
func NewLegacyLogGenerator() *LegacyLogGenerator {
return &LegacyLogGenerator{}
}
func (*LegacyLogGenerator) Generate() []byte {
return BasicLegacyLogMessage()
}
func BasicLegacyLogMessage() []byte {
message, _ := proto.Marshal(BasicLegacyLogMessageEnvelope())
return message
}
func BasicLegacyLogMessageEnvelope() *logmessage.LogEnvelope {
return &logmessage.LogEnvelope{
RoutingKey: proto.String("routing-key"),
Signature: []byte(""),
LogMessage: &logmessage.LogMessage{
Message: []byte("test message"),
MessageType: logmessage.LogMessage_OUT.Enum(),
Timestamp: proto.Int64(time.Now().UnixNano()),
AppId: proto.String("app-id"),
},
}
}