Skip to content

Commit

Permalink
Revert "Override common dimensions with signalfx_vary_key_by (#780)"
Browse files Browse the repository at this point in the history
This reverts commit 532b017.
  • Loading branch information
ChimeraCoder authored and eriwo-stripe committed Mar 16, 2021
1 parent 2bbbd6e commit c7f74e5
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 52 deletions.
22 changes: 10 additions & 12 deletions sinks/signalfx/signalfx.go
Original file line number Diff line number Diff line change
Expand Up @@ -435,28 +435,25 @@ METRICLOOP: // Convenience label so that inner nested loops and `continue` easil
}
}

// metric-specified API key, if present, should override the common dimension
metricKey := ""
metricVaryByOverride := false

// Metric-specified API key, if present, should override the common dimension
metricOverrodeVaryBy := false
if sfx.varyBy != "" {
if _, ok := dims[sfx.varyBy]; ok {
metricOverrodeVaryBy = true
if val, ok := dims[sfx.varyBy]; ok {
metricKey = val
metricVaryByOverride = true
}
}

// Copy common dimensions, except for sfx.varyBy
// Copy common dimensions
for k, v := range sfx.commonDimensions {
if metricOverrodeVaryBy && k == sfx.varyBy {
continue
}
dims[k] = v
}

if sfx.varyBy != "" {
if val, ok := dims[sfx.varyBy]; ok {
metricKey = val
}
// re-copy metric-specified API key, if present
if metricVaryByOverride {
dims[sfx.varyBy] = metricKey
}

for k := range sfx.excludedTags {
Expand All @@ -469,6 +466,7 @@ METRICLOOP: // Convenience label so that inner nested loops and `continue` easil
case samplers.GaugeMetric:
point = sfxclient.GaugeF(metric.Name, dims, metric.Value)
case samplers.CounterMetric:
// TODO I am not certain if this should be a Counter or a Cumulative
point = sfxclient.Counter(metric.Name, dims, int64(metric.Value))
case samplers.StatusMetric:
countStatusMetrics++
Expand Down
40 changes: 0 additions & 40 deletions sinks/signalfx/signalfx_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -779,43 +779,3 @@ LOOP:
assert.Subset(t, actualPerTagClients, expectedPerTagClients, "The expected values should be a subset of the actual values")

}

func TestSignalFxVaryByOverride(t *testing.T) {
derived := newDerivedProcessor()

varyByTagKey := "vary_by"
commonDimensions := map[string]string{"vary_by": "bar"}
defaultFakeSink := NewFakeSink()
customFakeSinkFoo := NewFakeSink()
customFakeSinkBar := NewFakeSink()
perTagClients := make(map[string]DPClient)
perTagClients["foo"] = customFakeSinkFoo
perTagClients["bar"] = customFakeSinkBar

sink, err := NewSignalFxSink("host", "glooblestoots", commonDimensions, logrus.New(), defaultFakeSink, varyByTagKey, perTagClients, nil, nil, derived, 0, "", false, time.Second, "", "", nil)

assert.NoError(t, err)

interMetrics := []samplers.InterMetric{samplers.InterMetric{
Name: "a.b.c",
Timestamp: 1476119058,
Value: float64(100),
Tags: []string{
"vary_by:foo",
},
Type: samplers.GaugeMetric,
},
samplers.InterMetric{
Name: "a.b.d",
Timestamp: 1476119059,
Value: float64(100),
Tags: []string{},
Type: samplers.GaugeMetric,
}}

sink.Flush(context.TODO(), interMetrics)

assert.Equal(t, 0, len(defaultFakeSink.points))
assert.Equal(t, 1, len(customFakeSinkFoo.points))
assert.Equal(t, 1, len(customFakeSinkBar.points))
}

0 comments on commit c7f74e5

Please sign in to comment.