Skip to content

Commit 06ffb75

Browse files
author
MJarmo
committed
rmv test debuq
Signed-off-by: MJarmo <[email protected]>
1 parent 5c0389c commit 06ffb75

File tree

2 files changed

+7
-178
lines changed

2 files changed

+7
-178
lines changed

exporter/debugexporter/exporter.go

Lines changed: 6 additions & 172 deletions
Original file line numberDiff line numberDiff line change
@@ -5,39 +5,25 @@ package debugexporter // import "go.opentelemetry.io/collector/exporter/debugexp
55

66
import (
77
"context"
8-
"fmt"
9-
"os"
10-
"sync"
11-
"sync/atomic"
128

139
"go.uber.org/zap"
1410

1511
"go.opentelemetry.io/collector/config/configtelemetry"
1612
"go.opentelemetry.io/collector/exporter/debugexporter/internal/normal"
1713
"go.opentelemetry.io/collector/exporter/debugexporter/internal/otlptext"
18-
"go.opentelemetry.io/collector/pdata/pcommon"
1914
"go.opentelemetry.io/collector/pdata/plog"
2015
"go.opentelemetry.io/collector/pdata/pmetric"
2116
"go.opentelemetry.io/collector/pdata/pprofile"
2217
"go.opentelemetry.io/collector/pdata/ptrace"
2318
)
2419

25-
var failureCnt atomic.Int32
26-
2720
type debugExporter struct {
2821
verbosity configtelemetry.Level
2922
logger *zap.Logger
3023
logsMarshaler plog.Marshaler
3124
metricsMarshaler pmetric.Marshaler
3225
tracesMarshaler ptrace.Marshaler
3326
profilesMarshaler pprofile.Marshaler
34-
receivedLogs sync.Map
35-
36-
totalLogsCount atomic.Int64
37-
exportCallCount atomic.Int64
38-
expectedLogs int64
39-
logFile *os.File
40-
fileMutex sync.Mutex
4127
}
4228

4329
func newDebugExporter(logger *zap.Logger, verbosity configtelemetry.Level) *debugExporter {
@@ -56,21 +42,13 @@ func newDebugExporter(logger *zap.Logger, verbosity configtelemetry.Level) *debu
5642
tracesMarshaler = normal.NewNormalTracesMarshaler()
5743
profilesMarshaler = normal.NewNormalProfilesMarshaler()
5844
}
59-
60-
logFile, err := os.OpenFile("test-logs.txt", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
61-
if err != nil {
62-
logger.Error("Failed to open test-logs.txt for writing", zap.Error(err))
63-
}
64-
6545
return &debugExporter{
6646
verbosity: verbosity,
6747
logger: logger,
6848
logsMarshaler: logsMarshaler,
6949
metricsMarshaler: metricsMarshaler,
7050
tracesMarshaler: tracesMarshaler,
7151
profilesMarshaler: profilesMarshaler,
72-
expectedLogs: 10000,
73-
logFile: logFile,
7452
}
7553
}
7654

@@ -108,87 +86,19 @@ func (s *debugExporter) pushMetrics(_ context.Context, md pmetric.Metrics) error
10886
}
10987

11088
func (s *debugExporter) pushLogs(_ context.Context, ld plog.Logs) error {
111-
callNumber := s.exportCallCount.Add(1)
112-
113-
if callNumber%10 == 0 {
114-
s.logger.Warn("Simulating export failure for 10th call", zap.Int64("call_number", callNumber))
115-
return fmt.Errorf("simulated export failure on call %d", callNumber)
116-
}
117-
118-
logRecordCount := ld.LogRecordCount()
119-
120-
for i := 0; i < ld.ResourceLogs().Len(); i++ {
121-
resourceLogs := ld.ResourceLogs().At(i)
122-
for j := 0; j < resourceLogs.ScopeLogs().Len(); j++ {
123-
scopeLogs := resourceLogs.ScopeLogs().At(j)
124-
for k := 0; k < scopeLogs.LogRecords().Len(); k++ {
125-
logRecord := scopeLogs.LogRecords().At(k)
126-
if counter, exists := logRecord.Attributes().Get("test.log.counter"); exists {
127-
s.receivedLogs.Store(counter.Int(), true)
128-
s.writeLogToFile(logRecord, s.totalLogsCount.Load())
129-
}
130-
}
131-
}
132-
}
133-
134-
currentCount := s.totalLogsCount.Add(int64(logRecordCount))
135-
s.logger.Info("Logs body", zap.String("body", ld.ResourceLogs().At(0).ScopeLogs().At(0).LogRecords().At(0).Body().AsString()))
13689
s.logger.Info("Logs",
13790
zap.Int("resource logs", ld.ResourceLogs().Len()),
138-
zap.Int("log records", logRecordCount),
139-
zap.Int64("total received", currentCount),
140-
zap.Int64("currentCount", currentCount),
141-
)
142-
143-
if currentCount >= s.expectedLogs {
144-
uniqueCount := int64(0)
145-
var missingLogs []int64
146-
receivedCounters := make(map[int64]bool)
147-
148-
s.receivedLogs.Range(func(key, value interface{}) bool {
149-
if counter, ok := key.(int64); ok {
150-
receivedCounters[counter] = true
151-
uniqueCount++
152-
}
153-
return true
154-
})
155-
156-
for i := int64(1); i <= s.expectedLogs; i++ {
157-
if !receivedCounters[i] {
158-
missingLogs = append(missingLogs, i)
159-
}
160-
}
161-
162-
successRate := (float64(uniqueCount) / float64(s.expectedLogs)) * 100
163-
164-
s.logger.Info("SUCCESS RATE REPORT",
165-
zap.Int64("expected_logs", s.expectedLogs),
166-
zap.Int64("total_received", currentCount),
167-
zap.Int64("unique_logs", uniqueCount),
168-
zap.Int("missing_count", len(missingLogs)),
169-
zap.Float64("success_rate_percent", successRate))
170-
171-
s.writeReportToFile(s.expectedLogs, currentCount, uniqueCount, int64(len(missingLogs)), successRate, missingLogs)
172-
173-
if len(missingLogs) > 0 && len(missingLogs) <= 100 {
174-
s.logger.Warn("Missing log counters", zap.Int64s("missing", missingLogs))
175-
} else if len(missingLogs) > 100 {
176-
s.logger.Warn("Too many missing logs to list",
177-
zap.Int("missing_count", len(missingLogs)),
178-
zap.Int64("first_missing", missingLogs[0]),
179-
zap.Int64("last_missing", missingLogs[len(missingLogs)-1]))
180-
}
181-
}
91+
zap.Int("log records", ld.LogRecordCount()))
18292

18393
if s.verbosity == configtelemetry.LevelBasic {
18494
return nil
18595
}
18696

187-
// buf, err := s.logsMarshaler.MarshalLogs(ld)
188-
// if err != nil {
189-
// return err
190-
// }
191-
// s.logger.Info(string(buf))
97+
buf, err := s.logsMarshaler.MarshalLogs(ld)
98+
if err != nil {
99+
return err
100+
}
101+
s.logger.Info(string(buf))
192102
return nil
193103
}
194104

@@ -208,79 +118,3 @@ func (s *debugExporter) pushProfiles(_ context.Context, pd pprofile.Profiles) er
208118
s.logger.Info(string(buf))
209119
return nil
210120
}
211-
212-
func (s *debugExporter) writeLogToFile(logRecord plog.LogRecord, counter int64) {
213-
if s.logFile == nil {
214-
return
215-
}
216-
217-
s.fileMutex.Lock()
218-
defer s.fileMutex.Unlock()
219-
220-
logLine := fmt.Sprintf("Counter: %d | Body: %s | Severity: %s | Timestamp: %s",
221-
counter,
222-
logRecord.Body().AsString(),
223-
logRecord.SeverityText(),
224-
logRecord.Timestamp().String())
225-
226-
var attrs string
227-
logRecord.Attributes().Range(func(k string, v pcommon.Value) bool {
228-
attrs += fmt.Sprintf(" | %s: %s", k, v.AsString())
229-
return true
230-
})
231-
logLine += attrs + "\n"
232-
233-
_, err := s.logFile.WriteString(logLine)
234-
if err != nil {
235-
s.logger.Error("Failed to write log to file", zap.Error(err))
236-
}
237-
}
238-
239-
func (s *debugExporter) writeReportToFile(expectedLogs, totalReceived, uniqueLogs, missingCount int64, successRate float64, missingLogs []int64) {
240-
if s.logFile == nil {
241-
return
242-
}
243-
244-
s.fileMutex.Lock()
245-
defer s.fileMutex.Unlock()
246-
247-
report := fmt.Sprintf("\n"+
248-
"========================================\n"+
249-
" SUCCESS RATE REPORT \n"+
250-
"========================================\n"+
251-
"Expected Logs: %d\n"+
252-
"Total Received: %d\n"+
253-
"Unique Logs: %d\n"+
254-
"Successfully Received: %d\n"+
255-
"Missing/Failed: %d\n"+
256-
"Success Rate: %.2f%%\n"+
257-
"========================================\n",
258-
expectedLogs, totalReceived, uniqueLogs, uniqueLogs, missingCount, successRate)
259-
260-
if missingCount > 0 && missingCount <= 100 {
261-
report += fmt.Sprintf("\nMissing Log Counters:\n%v\n", missingLogs)
262-
} else if missingCount > 100 {
263-
report += fmt.Sprintf("\nMissing Logs Count: %d\n", missingCount)
264-
report += fmt.Sprintf("First Missing: %d\n", missingLogs[0])
265-
report += fmt.Sprintf("Last Missing: %d\n", missingLogs[len(missingLogs)-1])
266-
}
267-
268-
report += "========================================\n\n"
269-
270-
_, err := s.logFile.WriteString(report)
271-
if err != nil {
272-
s.logger.Error("Failed to write report to file", zap.Error(err))
273-
}
274-
}
275-
276-
func (s *debugExporter) Shutdown(_ context.Context) error {
277-
if s.logFile != nil {
278-
s.fileMutex.Lock()
279-
defer s.fileMutex.Unlock()
280-
if err := s.logFile.Close(); err != nil {
281-
s.logger.Error("Failed to close log file", zap.Error(err))
282-
return err
283-
}
284-
}
285-
return nil
286-
}

exporter/debugexporter/factory.go

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -86,12 +86,7 @@ func createLogs(ctx context.Context, set exporter.Settings, config component.Con
8686
debug.pushLogs,
8787
exporterhelper.WithCapabilities(consumer.Capabilities{MutatesData: false}),
8888
exporterhelper.WithTimeout(exporterhelper.TimeoutConfig{Timeout: 0}),
89-
exporterhelper.WithShutdown(func(ctx context.Context) error {
90-
if err := debug.Shutdown(ctx); err != nil {
91-
exporterLogger.Error("Failed to shutdown debug exporter", zap.Error(err))
92-
}
93-
return otlptext.LoggerSync(exporterLogger)(ctx)
94-
}),
89+
exporterhelper.WithShutdown(otlptext.LoggerSync(exporterLogger)),
9590
)
9691
}
9792

0 commit comments

Comments
 (0)