Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[cmd/telemetrygen] Allow configuring Sum and Gauge metrics via CLI #26667

Merged
merged 22 commits into from
Sep 18, 2023
Merged
Changes from 7 commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
407b67a
Add Sum and Histogram metrics
marcelbirkner Sep 12, 2023
89c4a3f
Update metrics.go
marcelbirkner Sep 13, 2023
cd81db7
Update worker.go
marcelbirkner Sep 13, 2023
2487539
Merge pull request #1 from marcelbirkner/extend-metrics
marcelbirkner Sep 13, 2023
82537b4
Use status.code as attribute
marcelbirkner Sep 13, 2023
2685e6b
Merge branch 'main' into add-metrics-to-telemetrygen
marcelbirkner Sep 13, 2023
a88abc8
Merge branch 'main' into add-metrics-to-telemetrygen
marcelbirkner Sep 14, 2023
1f8f7b0
Merge branch 'main' into add-metrics-to-telemetrygen
marcelbirkner Sep 15, 2023
910e588
Make metric-type configurable as a CLI parameter, remove metric attri…
marcelbirkner Sep 15, 2023
a2c96eb
Make metric-type configurable as a CLI parameter, remove metric attri…
marcelbirkner Sep 15, 2023
13455a7
Keep Gauge as default metric type
marcelbirkner Sep 15, 2023
9c36dd8
Update cmd/telemetrygen/internal/metrics/worker.go
marcelbirkner Sep 15, 2023
e49ae71
Update cmd/telemetrygen/internal/metrics/worker.go
marcelbirkner Sep 15, 2023
c000f9d
Removing Histograms and ALL, reverting metric name
marcelbirkner Sep 15, 2023
f92f7e9
Add changelog
marcelbirkner Sep 15, 2023
9091f55
Add license header
marcelbirkner Sep 15, 2023
d6ddb63
gocritic: switch ifelse with case statement
marcelbirkner Sep 15, 2023
4757222
Formattin
marcelbirkner Sep 15, 2023
0fc8070
Fix unit tests
marcelbirkner Sep 15, 2023
6a9c231
Merge branch 'main' into add-metrics-to-telemetrygen
marcelbirkner Sep 15, 2023
5681037
Merge branch 'main' into add-metrics-to-telemetrygen
marcelbirkner Sep 18, 2023
4e73213
Update cmd/telemetrygen/internal/metrics/worker.go
marcelbirkner Sep 18, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 40 additions & 1 deletion cmd/telemetrygen/internal/metrics/worker.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
"sync/atomic"
"time"

"go.opentelemetry.io/otel/attribute"
sdkmetric "go.opentelemetry.io/otel/sdk/metric"
"go.opentelemetry.io/otel/sdk/metric/metricdata"
"go.opentelemetry.io/otel/sdk/resource"
Expand All @@ -28,7 +29,13 @@ type worker struct {

func (w worker) simulateMetrics(res *resource.Resource, exporter sdkmetric.Exporter) {
mx-psi marked this conversation as resolved.
Show resolved Hide resolved
limiter := rate.NewLimiter(w.limitPerSecond, 1)

var i int64
value := 24.42
attrs := attribute.NewSet(attribute.KeyValue{
mx-psi marked this conversation as resolved.
Show resolved Hide resolved
Key: attribute.Key("status.code"),
Value: attribute.StringValue("STATUS_CODE_OK"),
})

for w.running.Load() {
rm := metricdata.ResourceMetrics{
Expand All @@ -37,20 +44,52 @@ func (w worker) simulateMetrics(res *resource.Resource, exporter sdkmetric.Expor
{
Metrics: []metricdata.Metrics{
{
Name: "gen",
Name: "gen.metric.gauge",
Data: metricdata.Gauge[int64]{
DataPoints: []metricdata.DataPoint[int64]{
{
Attributes: attrs,
Time: time.Now(),
Value: i,
},
},
},
},
{
Name: "gen.metric.sum",
Data: metricdata.Sum[int64]{
IsMonotonic: true,
Temporality: metricdata.DeltaTemporality,
DataPoints: []metricdata.DataPoint[int64]{
{
Attributes: attrs,
StartTime: time.Now(),
Time: time.Now().Add(1 * time.Second),
Value: i,
},
},
},
},
{
Name: "gen.metric.histogram",
Data: metricdata.Histogram[float64]{
Temporality: metricdata.CumulativeTemporality,
DataPoints: []metricdata.HistogramDataPoint[float64]{
{
Attributes: attrs,
Sum: float64(float32(value)),
Max: metricdata.NewExtrema(float64(float32(value))),
Min: metricdata.NewExtrema(float64(float32(value))),
Count: 1,
},
},
},
},
},
},
},
}

if err := exporter.Export(context.Background(), &rm); err != nil {
w.logger.Fatal("exporter failed", zap.Error(err))
}
Expand Down