Skip to content

Commit 8acc37d

Browse files
jaer-tsunJaeryn
andauthored
Removing telemetry processed on HostNetAgent (#903)
Co-authored-by: Jaeryn <[email protected]>
1 parent ae9aedc commit 8acc37d

File tree

10 files changed

+40
-418
lines changed

10 files changed

+40
-418
lines changed

cni/network/plugin/main.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ func main() {
184184
// CNI Acquires lock
185185
if err = netPlugin.Plugin.InitializeKeyValueStore(&config); err != nil {
186186
log.Errorf("Failed to initialize key-value store of network plugin, err:%v.\n", err)
187-
tb := telemetry.NewTelemetryBuffer("")
187+
tb := telemetry.NewTelemetryBuffer()
188188
if tberr := tb.Connect(); tberr == nil {
189189
reportPluginError(reportManager, tb, err)
190190
tb.Close()
@@ -212,7 +212,7 @@ func main() {
212212

213213
// Start telemetry process if not already started. This should be done inside lock, otherwise multiple process
214214
// end up creating/killing telemetry process results in undesired state.
215-
tb := telemetry.NewTelemetryBuffer("")
215+
tb := telemetry.NewTelemetryBuffer()
216216
tb.ConnectToTelemetryService(telemetryNumRetries, telemetryWaitTimeInMilliseconds)
217217
defer tb.Close()
218218

cni/telemetry/service/telemetrymain.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -157,14 +157,14 @@ func main() {
157157
log.Logf("Config after setting defaults %+v", config)
158158

159159
// Cleaning up orphan socket if present
160-
tbtemp := telemetry.NewTelemetryBuffer("")
160+
tbtemp := telemetry.NewTelemetryBuffer()
161161
tbtemp.Cleanup(telemetry.FdName)
162162

163163
for {
164-
tb = telemetry.NewTelemetryBuffer("")
164+
tb = telemetry.NewTelemetryBuffer()
165165

166166
log.Logf("[Telemetry] Starting telemetry server")
167-
err = tb.StartServer(config.DisableTelemetryToNetAgent)
167+
err = tb.StartServer()
168168
if err == nil || tb.FdExists {
169169
break
170170
}
@@ -189,7 +189,7 @@ func main() {
189189
err = telemetry.CreateAITelemetryHandle(aiConfig, config.DisableAll, config.DisableTrace, config.DisableMetric)
190190
log.Printf("[Telemetry] AI Handle creation status:%v", err)
191191
log.Logf("[Telemetry] Report to host for an interval of %d seconds", config.ReportToHostIntervalInSeconds)
192-
tb.BufferAndPushData(config.ReportToHostIntervalInSeconds * time.Second)
192+
tb.PushData()
193193
telemetry.CloseAITelemetryHandle()
194194

195195
log.Close()

cnms/service/networkmonitor.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ func main() {
135135
CNIReport: reportManager.Report.(*telemetry.CNIReport),
136136
}
137137

138-
tb := telemetry.NewTelemetryBuffer("")
138+
tb := telemetry.NewTelemetryBuffer()
139139
tb.ConnectToTelemetryService(telemetryNumRetries, telemetryWaitTimeInMilliseconds)
140140
defer tb.Close()
141141

cns/logger/heartbeat.go

Lines changed: 0 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -4,29 +4,11 @@
44
package logger
55

66
import (
7-
"reflect"
8-
"regexp"
97
"time"
108

119
"github.com/Azure/azure-container-networking/aitelemetry"
12-
"github.com/Azure/azure-container-networking/log"
13-
"github.com/Azure/azure-container-networking/platform"
14-
"github.com/Azure/azure-container-networking/telemetry"
15-
"github.com/google/uuid"
1610
)
1711

18-
const (
19-
// CNSTelemetryFile - telemetry file path.
20-
cnsTelemetryFile = platform.CNSRuntimePath + "AzureCNSTelemetry.json"
21-
errorcodePrefix = 5
22-
heartbeatIntervalInMinutes = 30
23-
retryWaitTimeInSeconds = 60
24-
telemetryNumRetries = 5
25-
telemetryWaitTimeInMilliseconds = 200
26-
)
27-
28-
var codeRegex = regexp.MustCompile(`Code:(\w*)`)
29-
3012
func SendHeartBeat(heartbeatIntervalInMins int, stopheartbeat chan bool) {
3113
heartbeat := time.NewTicker(time.Minute * time.Duration(heartbeatIntervalInMins)).C
3214
metric := aitelemetry.Metric{
@@ -44,55 +26,3 @@ func SendHeartBeat(heartbeatIntervalInMins int, stopheartbeat chan bool) {
4426
}
4527
}
4628
}
47-
48-
// SendCnsTelemetry - handles cns telemetry reports
49-
func SendToTelemetryService(reports chan interface{}, telemetryStopProcessing chan bool) {
50-
51-
CONNECT:
52-
tb := telemetry.NewTelemetryBuffer("")
53-
tb.ConnectToTelemetryService(telemetryNumRetries, telemetryWaitTimeInMilliseconds)
54-
if tb.Connected {
55-
56-
reportMgr := telemetry.ReportManager{
57-
ContentType: telemetry.ContentType,
58-
Report: &telemetry.CNSReport{},
59-
}
60-
61-
reportMgr.GetReportState(cnsTelemetryFile)
62-
reportMgr.GetKernelVersion()
63-
64-
for {
65-
select {
66-
case msg := <-reports:
67-
codeStr := codeRegex.FindString(msg.(string))
68-
if len(codeStr) > errorcodePrefix {
69-
reflect.ValueOf(reportMgr.Report).Elem().FieldByName("Errorcode").SetString(codeStr[errorcodePrefix:])
70-
}
71-
72-
reflect.ValueOf(reportMgr.Report).Elem().FieldByName("EventMessage").SetString(msg.(string))
73-
case <-telemetryStopProcessing:
74-
tb.Close()
75-
return
76-
}
77-
78-
reflect.ValueOf(reportMgr.Report).Elem().FieldByName("Timestamp").SetString(time.Now().UTC().String())
79-
if id, err := uuid.NewUUID(); err == nil {
80-
reflect.ValueOf(reportMgr.Report).Elem().FieldByName("UUID").SetString(id.String())
81-
}
82-
83-
if !reportMgr.GetReportState(cnsTelemetryFile) {
84-
reportMgr.SetReportState(cnsTelemetryFile)
85-
}
86-
87-
report, err := reportMgr.ReportToBytes()
88-
if err == nil {
89-
// If write fails, try to re-establish connections as server/client
90-
if _, err = tb.Write(report); err != nil {
91-
log.Logf("[CNS-Telemetry] Telemetry write failed: %v", err)
92-
tb.Close()
93-
goto CONNECT
94-
}
95-
}
96-
}
97-
}
98-
}

cns/logger/log.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,6 @@ func InitAI(aiConfig aitelemetry.AIConfig, disableTraceLogging, disableMetricLog
5151
Log.DisableEventLogging = disableEventLogging
5252
}
5353

54-
func InitReportChannel(reports chan interface{}) {
55-
Log.logger.SetChannel(reports)
56-
}
57-
5854
// Close CNS and AI telemetry handle
5955
func Close() {
6056
Log.logger.Close()

cns/service/main.go

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,6 @@ const (
5757

5858
// Version is populated by make during build.
5959
var version string
60-
61-
// Reports channel
62-
var reports = make(chan interface{})
6360
var telemetryStopProcessing = make(chan bool)
6461
var stopheartbeat = make(chan bool)
6562
var stopSnapshots = make(chan bool)
@@ -436,7 +433,6 @@ func main() {
436433
}
437434

438435
logger.InitAI(aiConfig, ts.DisableTrace, ts.DisableMetric, ts.DisableEvent)
439-
logger.InitReportChannel(reports)
440436
}
441437

442438
// Log platform information.
@@ -537,7 +533,6 @@ func main() {
537533
}
538534

539535
if !disableTelemetry {
540-
go logger.SendToTelemetryService(reports, telemetryStopProcessing)
541536
go logger.SendHeartBeat(cnsconfig.TelemetrySettings.HeartBeatIntervalInMins, stopheartbeat)
542537
go httpRestService.SendNCSnapShotPeriodically(cnsconfig.TelemetrySettings.SnapshotIntervalInMins, stopSnapshots)
543538
}
@@ -859,8 +854,6 @@ func InitializeCRDState(httpRestService cns.HTTPService, cnsconfig configuration
859854
return
860855
}
861856
}
862-
863-
logger.Printf("[Azure CNS] Exiting SyncHostNCVersion")
864857
}()
865858

866859
return nil

log/logger.go

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ type Logger struct {
5353
maxFileCount int
5454
callCount int
5555
directory string
56-
reports chan interface{}
5756
mutex *sync.Mutex
5857
}
5958

@@ -91,11 +90,6 @@ func (logger *Logger) SetLogFileLimits(maxFileSize int, maxFileCount int) {
9190
logger.maxFileCount = maxFileCount
9291
}
9392

94-
// SetChannel sets the channel for error message reports.
95-
func (logger *Logger) SetChannel(reports chan interface{}) {
96-
logger.reports = reports
97-
}
98-
9993
// Close closes the log stream.
10094
func (logger *Logger) Close() {
10195
if logger.out != nil {
@@ -223,14 +217,7 @@ func (logger *Logger) Printf(format string, args ...interface{}) {
223217
return
224218
}
225219

226-
logger.mutex.Lock()
227-
logger.logf(format, args...)
228-
logger.mutex.Unlock()
229-
go func() {
230-
if logger.reports != nil {
231-
logger.reports <- fmt.Sprintf(format, args...)
232-
}
233-
}()
220+
logger.Logf(format, args...)
234221
}
235222

236223
// Debugf logs a formatted string at info level.
@@ -239,22 +226,10 @@ func (logger *Logger) Debugf(format string, args ...interface{}) {
239226
return
240227
}
241228

242-
logger.mutex.Lock()
243-
logger.logf(format, args...)
244-
logger.mutex.Unlock()
245-
go func() {
246-
if logger.reports != nil {
247-
logger.reports <- fmt.Sprintf(format, args...)
248-
}
249-
}()
229+
logger.Logf(format, args...)
250230
}
251231

252232
// Errorf logs a formatted string at info level and sends the string to TelemetryBuffer.
253233
func (logger *Logger) Errorf(format string, args ...interface{}) {
254234
logger.Logf(format, args...)
255-
go func() {
256-
if logger.reports != nil {
257-
logger.reports <- fmt.Sprintf(format, args...)
258-
}
259-
}()
260235
}

telemetry/telemetry.go

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -105,20 +105,6 @@ type AIMetric struct {
105105
Metric aitelemetry.Metric
106106
}
107107

108-
// Azure CNS Telemetry Report structure.
109-
type CNSReport struct {
110-
IsNewInstance bool
111-
CPUUsage string
112-
MemoryUsage string
113-
Processes string
114-
EventMessage string
115-
DncPartitionKey string
116-
Timestamp string
117-
UUID string
118-
Errorcode string
119-
Metadata common.Metadata `json:"compute"`
120-
}
121-
122108
// ClusterState contains the current kubernetes cluster state.
123109
type ClusterState struct {
124110
PodCount int
@@ -142,24 +128,6 @@ type NPMReport struct {
142128
Metadata common.Metadata `json:"compute"`
143129
}
144130

145-
// DNCReport structure.
146-
type DNCReport struct {
147-
IsNewInstance bool
148-
CPUUsage string
149-
MemoryUsage string
150-
Processes string
151-
EventMessage string
152-
PartitionKey string
153-
Allocations string
154-
Timestamp string
155-
NumberOfNodes int
156-
NumberOfNCs int
157-
Orchestrator string
158-
ContainerType string
159-
Errorcode string
160-
Metadata common.Metadata `json:"compute"`
161-
}
162-
163131
// ReportManager structure.
164132
type ReportManager struct {
165133
HostNetAgentURL string
@@ -374,9 +342,6 @@ func (reportMgr *ReportManager) ReportToBytes() ([]byte, error) {
374342

375343
switch reportMgr.Report.(type) {
376344
case *CNIReport:
377-
case *NPMReport:
378-
case *DNCReport:
379-
case *CNSReport:
380345
case *AIMetric:
381346
default:
382347
err = fmt.Errorf("[Telemetry] Invalid report type")

telemetry/telemetry_test.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -105,10 +105,10 @@ func TestMain(m *testing.M) {
105105
reportManager.ContentType = "application/json"
106106
reportManager.Report = &CNIReport{}
107107

108-
tb = NewTelemetryBuffer(hostAgentUrl)
109-
err = tb.StartServer(false)
108+
tb = NewTelemetryBuffer()
109+
err = tb.StartServer()
110110
if err == nil {
111-
go tb.BufferAndPushData(0)
111+
go tb.PushData()
112112
}
113113

114114
if err := tb.Connect(); err != nil {
@@ -200,14 +200,14 @@ func TestCloseTelemetryConnection(t *testing.T) {
200200

201201
func TestServerCloseTelemetryConnection(t *testing.T) {
202202
// create server telemetrybuffer and start server
203-
tb = NewTelemetryBuffer(hostAgentUrl)
204-
err := tb.StartServer(false)
203+
tb = NewTelemetryBuffer()
204+
err := tb.StartServer()
205205
if err == nil {
206-
go tb.BufferAndPushData(0)
206+
go tb.PushData()
207207
}
208208

209209
// create client telemetrybuffer and connect to server
210-
tb1 := NewTelemetryBuffer(hostAgentUrl)
210+
tb1 := NewTelemetryBuffer()
211211
if err := tb1.Connect(); err != nil {
212212
t.Errorf("connection to telemetry server failed %v", err)
213213
}
@@ -233,18 +233,18 @@ func TestServerCloseTelemetryConnection(t *testing.T) {
233233

234234
func TestClientCloseTelemetryConnection(t *testing.T) {
235235
// create server telemetrybuffer and start server
236-
tb = NewTelemetryBuffer(hostAgentUrl)
237-
err := tb.StartServer(false)
236+
tb = NewTelemetryBuffer()
237+
err := tb.StartServer()
238238
if err == nil {
239-
go tb.BufferAndPushData(0)
239+
go tb.PushData()
240240
}
241241

242242
if !SockExists() {
243243
t.Errorf("telemetry sock doesn't exist")
244244
}
245245

246246
// create client telemetrybuffer and connect to server
247-
tb1 := NewTelemetryBuffer(hostAgentUrl)
247+
tb1 := NewTelemetryBuffer()
248248
if err := tb1.Connect(); err != nil {
249249
t.Errorf("connection to telemetry server failed %v", err)
250250
}

0 commit comments

Comments
 (0)