Skip to content

Commit 710963c

Browse files
authored
Revert "chore: firelog exporter (#8555)" (#8598)
This reverts commit 70ed898.
1 parent 8460b1c commit 710963c

File tree

10 files changed

+27
-758
lines changed

10 files changed

+27
-758
lines changed

pkg/skaffold/instrumentation/ci.go

Lines changed: 0 additions & 32 deletions
This file was deleted.

pkg/skaffold/instrumentation/export.go

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -94,11 +94,6 @@ func exportMetrics(ctx context.Context, filename string, meter skaffoldMeter) er
9494
}
9595
var meters []skaffoldMeter
9696
err = json.Unmarshal(b, &meters)
97-
// each meter contains around 20 datapoints, and each datapoint requires a request to firelog api
98-
// we send at most 10 meters stored in skaffold metrics as too many request may result in the firelog server returning 429.
99-
if len(meters) >= 10 {
100-
meters = meters[:10]
101-
}
10297
if err != nil {
10398
meters = []skaffoldMeter{}
10499
}
@@ -165,13 +160,17 @@ func devStdOutExporter() (sdkmetric.Exporter, error) {
165160
}
166161

167162
func createMetrics(ctx context.Context, meter skaffoldMeter) {
168-
m := global.Meter("skaffold")
169-
163+
// There is a minimum 10 second interval that metrics are allowed to upload to Cloud monitoring
170164
// A metric is uniquely identified by the metric name and the labels and corresponding values
171165
// This random number is used as a label to differentiate the metrics per user so if two users
172166
// run `skaffold build` at the same time they will both have their metrics recorded
173167
randLabel := attribute.String("randomizer", strconv.Itoa(rand.Intn(75000)))
174168

169+
m := global.Meter("skaffold")
170+
171+
// cloud monitoring only supports string type labels
172+
// cloud monitoring only supports 10 labels per metric descriptor
173+
// be careful when appending new values to this `labels` slice
175174
labels := []attribute.KeyValue{
176175
attribute.String("version", meter.Version),
177176
attribute.String("os", meter.OS),
@@ -181,13 +180,15 @@ func createMetrics(ctx context.Context, meter skaffoldMeter) {
181180
attribute.String("platform_type", meter.PlatformType),
182181
attribute.String("config_count", strconv.Itoa(meter.ConfigCount)),
183182
attribute.String("cluster_type", meter.ClusterType),
184-
attribute.String("ci_cd_platform", meter.CISystem),
183+
}
184+
sharedLabels := []attribute.KeyValue{
185185
randLabel,
186186
}
187187

188188
if allowedUser := user.IsAllowedUser(meter.User); allowedUser {
189-
labels = append(labels, attribute.String("user", meter.User))
189+
sharedLabels = append(sharedLabels, attribute.String("user", meter.User))
190190
}
191+
labels = append(labels, sharedLabels...)
191192
platformLabel := attribute.String("host_os_arch", fmt.Sprintf("%s/%s", meter.OS, meter.Arch))
192193
runCounter := NewInt64ValueRecorder(m, "launches", instrument.WithDescription("Skaffold Invocations"))
193194
runCounter.Record(ctx, 1, labels...)
@@ -196,36 +197,36 @@ func createMetrics(ctx context.Context, meter skaffoldMeter) {
196197
instrument.WithDescription("durations of skaffold commands in seconds"))
197198
durationRecorder.Record(ctx, meter.Duration.Seconds(), labels...)
198199
if meter.Command != "" {
199-
commandMetrics(ctx, meter, m, labels...)
200-
flagMetrics(ctx, meter, m, labels...)
200+
commandMetrics(ctx, meter, m, sharedLabels...)
201+
flagMetrics(ctx, meter, m, randLabel)
201202
hooksMetrics(ctx, meter, m, labels...)
202203
if doesBuild.Contains(meter.Command) {
203-
builderMetrics(ctx, meter, m, platformLabel, labels...)
204+
builderMetrics(ctx, meter, m, platformLabel, sharedLabels...)
204205
}
205206
if doesDeploy.Contains(meter.Command) {
206-
deployerMetrics(ctx, meter, m, labels...)
207+
deployerMetrics(ctx, meter, m, sharedLabels...)
207208
}
208209
if doesDeploy.Contains(meter.Command) || meter.Command == "render" {
209-
resourceSelectorMetrics(ctx, meter, m, labels...)
210+
resourceSelectorMetrics(ctx, meter, m, sharedLabels...)
210211
}
211212
}
212213

213214
if meter.ErrorCode != 0 {
214-
errorMetrics(ctx, meter, m, append(labels, platformLabel)...)
215+
errorMetrics(ctx, meter, m, append(sharedLabels, platformLabel)...)
215216
}
216217
}
217218

218-
func flagMetrics(ctx context.Context, meter skaffoldMeter, m metric.Meter, labels ...attribute.KeyValue) {
219+
func flagMetrics(ctx context.Context, meter skaffoldMeter, m metric.Meter, randLabel attribute.KeyValue) {
219220
flagCounter := NewInt64ValueRecorder(m, "flags", instrument.WithDescription("Tracks usage of enum flags"))
220221
for k, v := range meter.EnumFlags {
221-
l := []attribute.KeyValue{
222+
labels := []attribute.KeyValue{
222223
attribute.String("flag_name", k),
223224
attribute.String("flag_value", v),
224225
attribute.String("command", meter.Command),
225226
attribute.String("error", meter.ErrorCode.String()),
227+
randLabel,
226228
}
227-
l = append(l, labels...)
228-
flagCounter.Record(ctx, 1, l...)
229+
flagCounter.Record(ctx, 1, labels...)
229230
}
230231
}
231232

@@ -248,13 +249,12 @@ func commandMetrics(ctx context.Context, meter skaffoldMeter, m metric.Meter, la
248249
m := counts[iteration.Intent]
249250
m[iteration.ErrorCode]++
250251
}
251-
randomizer := attribute.String("randomizer2", strconv.Itoa(rand.Intn(75000)))
252252
for intention, errorCounts := range counts {
253253
for errorCode, count := range errorCounts {
254254
iterationCounter.Record(ctx, int64(count),
255255
append(labels,
256256
attribute.String("intent", intention),
257-
attribute.String("error", errorCode.String()), randomizer,
257+
attribute.String("error", errorCode.String()),
258258
)...)
259259
}
260260
}

pkg/skaffold/instrumentation/export_test.go

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ import (
3131
sdkmetric "go.opentelemetry.io/otel/sdk/metric"
3232

3333
"github.com/GoogleContainerTools/skaffold/v2/fs"
34-
"github.com/GoogleContainerTools/skaffold/v2/pkg/skaffold/instrumentation/firelog"
3534
"github.com/GoogleContainerTools/skaffold/v2/proto/v1"
3635
"github.com/GoogleContainerTools/skaffold/v2/testutil"
3736
)
@@ -106,7 +105,7 @@ func TestExportMetrics(t *testing.T) {
106105
StartTime: startTime.Add(time.Hour * 24 * 10),
107106
Duration: time.Minute * 4,
108107
}
109-
metersBytes, _ := json.Marshal([]skaffoldMeter{devMeter, debugMeter, buildMeter})
108+
metersBytes, _ := json.Marshal([]skaffoldMeter{buildMeter, devMeter, debugMeter})
110109
fakeFS := testutil.FakeFileSystem{
111110
Files: map[string][]byte{
112111
"assets/secrets_generated/keys.json": []byte(testKey),
@@ -169,7 +168,6 @@ func TestExportMetrics(t *testing.T) {
169168

170169
fs.AssetsFS = fakeFS
171170
t.Override(&isOnline, test.isOnline)
172-
t.Override(&firelog.APIKey, "no-empty")
173171

174172
if test.isOnline {
175173
tmpFile, err := os.OpenFile(tmp.Path(openTelFilename), os.O_RDWR|os.O_CREATE, os.ModePerm)
@@ -408,7 +406,6 @@ func checkOutput(t *testutil.T, meters []skaffoldMeter, b []byte) {
408406
platform := make(map[interface{}]int)
409407
buildPlatforms := make(map[interface{}]int)
410408
cliPlatforms := make(map[interface{}]int)
411-
ciCDPlatforms := make(map[interface{}]int)
412409
nodePlatforms := make(map[interface{}]int)
413410

414411
testMaps := []map[interface{}]int{
@@ -422,7 +419,6 @@ func checkOutput(t *testutil.T, meters []skaffoldMeter, b []byte) {
422419
commandCount[meter.Command]++
423420
errorCount[meter.ErrorCode.String()]++
424421
platform[meter.PlatformType]++
425-
ciCDPlatforms[meter.CISystem]++
426422

427423
for k, v := range meter.EnumFlags {
428424
n := strings.ReplaceAll(k, "-", "_")
@@ -489,6 +485,10 @@ func checkOutput(t *testutil.T, meters []skaffoldMeter, b []byte) {
489485
}
490486
}
491487
}
488+
for _, l := range lines {
489+
fmt.Println(l.Name)
490+
fmt.Println(l.Labels)
491+
}
492492

493493
for _, l := range lines {
494494
switch l.Name {
@@ -578,10 +578,6 @@ func checkOutput(t *testutil.T, meters []skaffoldMeter, b []byte) {
578578
if v, ok := l.Labels["cli-platforms"]; ok {
579579
cliPlatforms[v]++
580580
}
581-
case "ci-cd-platforms":
582-
if v, ok := l.Labels["ci-cd-platforms"]; ok {
583-
ciCDPlatforms[v]++
584-
}
585581
default:
586582
switch {
587583
case MeteredCommands.Contains(l.Name):

pkg/skaffold/instrumentation/firelog/exporter.go

Lines changed: 0 additions & 185 deletions
This file was deleted.

0 commit comments

Comments
 (0)