-
Notifications
You must be signed in to change notification settings - Fork 69
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
Alerting: adapt sum of gauges to use options #584
Merged
Merged
Changes from 3 commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
7e9bdbc
adapt sum of gauges to use options
titolins 2bdcd0c
add WithLabels function back and revert unit tests
titolins bb25f7a
add new function unit tests
titolins 1747a3d
Update metrics/tenant_registries.go
titolins 33e026c
add changelog
titolins File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -219,25 +219,29 @@ func (d MetricFamiliesPerTenant) SendSumOfGaugesWithLabels(out chan<- prometheus | |
|
||
// SendSumOfGaugesPerTenant provides metrics on a per-tenant basis. | ||
// This function assumes that `tenant` is the first label on the provided metric Desc. | ||
func (d MetricFamiliesPerTenant) SendSumOfGaugesPerTenant(out chan<- prometheus.Metric, desc *prometheus.Desc, gauge string) { | ||
d.SendSumOfGaugesPerTenantWithLabels(out, desc, gauge) | ||
} | ||
func (d MetricFamiliesPerTenant) SendSumOfGaugesPerTenant(out chan<- prometheus.Metric, desc *prometheus.Desc, metric string, options ...MetricOption) { | ||
opts := applyMetricOptions(options...) | ||
|
||
// SendSumOfGaugesPerTenantWithLabels provides metrics with the provided label names on a per-tenant basis. This function assumes that `tenant` is the | ||
// first label on the provided metric Desc | ||
func (d MetricFamiliesPerTenant) SendSumOfGaugesPerTenantWithLabels(out chan<- prometheus.Metric, desc *prometheus.Desc, metric string, labelNames ...string) { | ||
for _, tenantEntry := range d { | ||
if tenantEntry.tenant == "" { | ||
continue | ||
} | ||
|
||
result := singleValueWithLabelsMap{} | ||
tenantEntry.metrics.sumOfSingleValuesWithLabels(metric, labelNames, gaugeValue, result.aggregateFn, false) | ||
tenantEntry.metrics.sumOfSingleValuesWithLabels(metric, opts.labelNames, gaugeValue, result.aggregateFn, opts.skipZeroValueMetrics) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Could you please add unit test showing that skipping of zero values works? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Added now 👍 |
||
result.prependTenantLabelValue(tenantEntry.tenant) | ||
result.WriteToMetricChannel(out, desc, prometheus.GaugeValue) | ||
} | ||
} | ||
|
||
// SendSumOfGaugesPerTenantWithLabels provides metrics with the provided label names on a per-tenant basis. This function assumes that `tenant` is the | ||
// first label on the provided metric Desc | ||
// | ||
// Deprecated: use SendSumOfGaugesPerTenant instead. | ||
titolins marked this conversation as resolved.
Show resolved
Hide resolved
|
||
func (d MetricFamiliesPerTenant) SendSumOfGaugesPerTenantWithLabels(out chan<- prometheus.Metric, desc *prometheus.Desc, metric string, labelNames ...string) { | ||
d.SendSumOfGaugesPerTenant(out, desc, metric, WithLabels(labelNames...)) | ||
} | ||
|
||
func (d MetricFamiliesPerTenant) sumOfSingleValuesWithLabels(metric string, fn func(*dto.Metric) float64, labelNames []string, skipZeroValue bool) singleValueWithLabelsMap { | ||
result := singleValueWithLabelsMap{} | ||
for _, tenantEntry := range d { | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To avoid breaking clients, can we keep this function and reimplement it using
SendSumOfGaugesPerTenant
+WithLabels
option? (We can mark it as deprecated if we want to get rid of it)We can then also revert changes in the unit tests, to prove that function still works as before.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point, no breaking changes then. Added it now and reverted unit tests also 👍