statsd: add Flush() to datadogBackend#142
Open
mtwstudios wants to merge 1 commit intoShopify:mainfrom
Open
Conversation
Author
|
@lavoiesl would you be the right person to review this? Let me know if you have any questions/concerns, etc. |
lavoiesl
reviewed
Aug 23, 2022
| return b.client.Timing(name, value, tags, rate) | ||
| } | ||
|
|
||
| func (b *datadogBackend) Flush() error { |
Contributor
There was a problem hiding this comment.
Adding the method here would not be accessible because only the interface is exported.
Adding the method on the interface would be a breaking change.
Not saying it can't be done, but it's a more complicated change than adding it here.
As an alternative could be to add a method to take in a Client such that one could flush the client directly?
func NewDatadogBackend(endpoint, namespace string, tags []string) (Backend, error) {
client, err := statsd.New(endpoint)
if err != nil {
return nil, err
}
client.Tags = tags
return NewDatadogBackendFromClient(client, namespace)
}
func NewDatadogBackendFromClient(client *statsd.Client, namespace string) (Backend, error) {
client.Namespace = namespace
client.Tags = append(defaultTagsFromEnv(), client.Tags...)
return &datadogBackend{
client: client,
}, nil
}
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Remade this PR from #141 to re-trigger CLA
This PR adds a public method to flush any remaining metrics manually (rather than waiting for the flush interval), by calling the Flush() method on the dogstatsd client.
This is helpful in the case of recording a metric right before terminating the program. In this case, the metric will not get submitted to datadog - the only workaround being putting a
sleepin place for at least as long as the flush interval.With this, one can call
Flush()before the program terminates to make sure any remaining metrics are submitted to Datadog.