-
-
Notifications
You must be signed in to change notification settings - Fork 218
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
Report app dependency addition/removal to DataDog #35455
Changes from 2 commits
2056cc2
7179077
a94b241
c2ef0d0
af3a6a1
08b1425
1823cbd
319593f
293fcaa
1c71a7b
cbd65ab
aee1a9a
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -181,6 +181,7 @@ | |
from corehq.blobs.mixin import CODES, BlobMixin | ||
from corehq.const import USER_DATE_FORMAT, USER_TIME_FORMAT | ||
from corehq.util import bitly, view_utils | ||
from corehq.util.metrics import metrics_counter | ||
from corehq.util.quickcache import quickcache | ||
from corehq.util.timer import TimingContext, time_method | ||
from corehq.util.timezones.conversions import ServerTime | ||
|
@@ -4467,8 +4468,27 @@ def make_build(self, comment=None, user_id=None): | |
assert copy._id | ||
prune_auto_generated_builds.delay(self.domain, self._id) | ||
|
||
self.check_build_dependencies(new_build=copy) | ||
|
||
return copy | ||
|
||
def check_build_dependencies(self, new_build): | ||
""" | ||
Reports whether the app dependencies have been removed. | ||
""" | ||
|
||
def has_dependencies(build): | ||
return bool( | ||
build.get('profile', {}).get('features', {}).get('dependencies') | ||
) | ||
|
||
latest_build = get_latest_build_doc(self.domain, self.id) | ||
if not latest_build: | ||
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. When would there not be a latest build? 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. The "latest_build" here refers to the previous build, as the new build has not been made at this point. So the "latest_build" could be 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. Ah I see, thanks for the clarification 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. nit: to make it slightly better, you could consider naming this last_build. 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. |
||
return | ||
|
||
if has_dependencies(latest_build) and not has_dependencies(new_build): | ||
metrics_counter('commcare.app_build.dependencies_removed') | ||
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. I like that we have simplified the approach here. Wanted to check if this metric in itself would be useful? Don't we need the uptake as well? Or we could report uptake separately, which seems easy enough to add now.
I would vote for the single counter with both +/- 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.
I'll check this out. Thanks for the suggestion. 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. 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. So, these will show as two separate metrics right? not as one? or they can be combined if needed on the datadog UI? 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. @mkangia They can be combined as needed on Data Dog. 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. Great 👍 |
||
|
||
def convert_app_to_build(self, copy_of, user_id, comment=None): | ||
self.copy_of = copy_of | ||
built_on = datetime.datetime.utcnow() | ||
|
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.
looks like the documentation needs to be updated.
And possibly the function name as well.
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 catch
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.
08b1425