-
Notifications
You must be signed in to change notification settings - Fork 104
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
Add attrs for aws lambda entity #1227
base: main
Are you sure you want to change the base?
Conversation
🦙 MegaLinter status: ✅ SUCCESS
See detailed report in MegaLinter reports |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #1227 +/- ##
==========================================
- Coverage 81.07% 81.06% -0.02%
==========================================
Files 200 200
Lines 22088 22118 +30
Branches 3508 3515 +7
==========================================
+ Hits 17908 17929 +21
- Misses 3017 3023 +6
- Partials 1163 1166 +3 ☔ View full report in Codecov by Sentry. |
306924c
to
52e28fb
Compare
52e28fb
to
d0946b4
Compare
d0946b4
to
9033706
Compare
f9aa807
to
61c9ebb
Compare
…c-python-agent into support-lambda-entities
newrelic/hooks/external_botocore.py
Outdated
|
||
bound_args = bind_args(wrapped, args, kwargs) | ||
arn = bound_args["kwargs"].get("FunctionName") | ||
if arn and hasattr(instance, "meta") and hasattr(instance.meta, "events"): |
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.
This is just an object that I found that is also available inside the make_request. It's possible there is something better to attach this to but it was hard to find something that was accessible in both spots. I didn't want to attach it to the transaction as I thought there might be a conflict with that in async cases.
newrelic/hooks/external_botocore.py
Outdated
lambda_arn = getattr(instance._event_emitter, "_nr_lambda_arn", None) | ||
if lambda_arn: | ||
trace._add_agent_attribute("cloud.platform", "aws_lambda") | ||
trace._add_agent_attribute("cloud.resource_id", lambda_arn) |
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.
Are we confident this object isn't reused for future requests?
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.
I've updated this to use a different object that is generated for each request.
@@ -303,6 +303,7 @@ deps = | |||
external_botocore-botocore128: botocore<1.29 | |||
external_botocore-botocore0125: botocore<1.26 | |||
external_botocore: moto | |||
external_botocore: docker |
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.
What's the docker dependency for? Lambda/moto?
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.
Yes it's imported inside the lambda invoke in moto.
Co-authored-by: Timothy Pansino <11214426+TimPansino@users.noreply.github.com>
Co-authored-by: Timothy Pansino <11214426+TimPansino@users.noreply.github.com>
These are regenerated for each request as opposed to the events obj that persists across multiple requests. Unfortunately, we have to pass the arn from api_params to the request_dict because: 1. api_params has validation key checks that exclude unknown params upon generating the request_dict 2. the arn is not available after api_params are emitted because emit drops the param that contains the arn So...we capture the arn before it is lost when the api_params are emitted and pop it off before generating the request dict and put it onto the output request dict to be popped off later by the make request method and added to the trace to link the entity.
…c-python-agent into support-lambda-entities
Overview
Add attrs for aws lambda entity linking.
The agent spec says: