Skip to content

Commit 10928db

Browse files
Test E2E collection behaviour for fiddler receiver
1 parent cc7d2a8 commit 10928db

File tree

3 files changed

+584
-78
lines changed

3 files changed

+584
-78
lines changed

receiver/fiddlerreceiver/config.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ import (
77

88
const (
99
defaultEndpoint = "localhost:8080"
10-
defaultAuthToken = ""
10+
defaultAuthToken = "test-token"
1111
defaultTimeout = 5 * time.Minute
12-
defaultInterval = 30 * time.Minute
12+
defaultInterval = 5 * time.Minute
1313
minimumInterval = 5 * time.Minute
1414
)
1515

receiver/fiddlerreceiver/internal/metadata/metrics.go

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,15 +47,17 @@ func (b *MetricBuilder) AddMetricType(metricID, metricType string) {
4747

4848
// AddDataPoints adds metrics data points from Fiddler API query results
4949
func (b *MetricBuilder) AddDataPoints(projectName string, results map[string]client.QueryResult) {
50-
// Resource scope for all metrics
51-
rm := b.metrics.ResourceMetrics().AppendEmpty()
52-
resource := rm.Resource()
53-
resource.Attributes().PutStr("service.name", "fiddler")
54-
resource.Attributes().PutStr("fiddler.project", projectName)
50+
// Get a resource metric for this project
51+
rm := b.getOrCreateResourceMetric(projectName)
5552

56-
// Scope for all metrics
57-
sm := rm.ScopeMetrics().AppendEmpty()
58-
sm.Scope().SetName("fiddlerreceiver")
53+
// Get or create scope
54+
var sm pmetric.ScopeMetrics
55+
if rm.ScopeMetrics().Len() > 0 {
56+
sm = rm.ScopeMetrics().At(0)
57+
} else {
58+
sm = rm.ScopeMetrics().AppendEmpty()
59+
sm.Scope().SetName("fiddlerreceiver")
60+
}
5961

6062
// Process each query result
6163
for _, result := range results {
@@ -98,6 +100,26 @@ func (b *MetricBuilder) AddDataPoints(projectName string, results map[string]cli
98100
}
99101
}
100102

103+
// getOrCreateResourceMetric gets an existing resource metric for the project or creates a new one
104+
func (b *MetricBuilder) getOrCreateResourceMetric(projectName string) pmetric.ResourceMetrics {
105+
// Look for existing resource metric for this project
106+
for i := 0; i < b.metrics.ResourceMetrics().Len(); i++ {
107+
rm := b.metrics.ResourceMetrics().At(i)
108+
projectAttr, ok := rm.Resource().Attributes().Get("fiddler.project")
109+
if ok && projectAttr.Str() == projectName {
110+
return rm
111+
}
112+
}
113+
114+
// Create new resource metric if not found
115+
rm := b.metrics.ResourceMetrics().AppendEmpty()
116+
resource := rm.Resource()
117+
resource.Attributes().PutStr("service.name", "fiddler")
118+
resource.Attributes().PutStr("fiddler.project", projectName)
119+
120+
return rm
121+
}
122+
101123
// addMetricFromColumn adds a metric based on the column name and metric type
102124
func (b *MetricBuilder) addMetricFromColumn(sm pmetric.ScopeMetrics, projectName string, result client.QueryResult, timestamp time.Time, colName string, value float64) {
103125
modelName := result.Model.Name

0 commit comments

Comments
 (0)