Open nhulston opened 2 weeks ago
Baseline | Candidate | |
---|---|---|
baseline_or_candidate | baseline | candidate |
git_branch | master | nicholas.hulston/lambda-eventbridge-tracing-fix |
git_commit_date | 1727445368 | 1727446067 |
git_commit_sha | aa1e54c87a | 9cf207e605 |
release_version | 1.40.0-SNAPSHOT~aa1e54c87a | 1.40.0-SNAPSHOT~9cf207e605 |
Found 0 performance improvements and 0 performance regressions! Performance is the same for 49 metrics, 14 unstable metrics.
Baseline | Candidate | |
---|---|---|
baseline_or_candidate | baseline | candidate |
end_time | 2024-09-27T14:17:29 | 2024-09-27T14:24:17 |
git_branch | master | nicholas.hulston/lambda-eventbridge-tracing-fix |
git_commit_date | 1727445368 | 1727446067 |
git_commit_sha | aa1e54c87a | 9cf207e605 |
release_version | 1.40.0-SNAPSHOT~aa1e54c87a | 1.40.0-SNAPSHOT~9cf207e605 |
start_time | 2024-09-27T14:17:15 | 2024-09-27T14:24:04 |
Found 0 performance improvements and 0 performance regressions! Performance is the same for 11 metrics, 17 unstable metrics.
Baseline | Candidate | |
---|---|---|
baseline_or_candidate | baseline | candidate |
git_branch | master | nicholas.hulston/lambda-eventbridge-tracing-fix |
git_commit_date | 1727445368 | 1727446067 |
git_commit_sha | aa1e54c87a | 9cf207e605 |
release_version | 1.40.0-SNAPSHOT~aa1e54c87a | 1.40.0-SNAPSHOT~9cf207e605 |
Found 0 performance improvements and 0 performance regressions! Performance is the same for 12 metrics, 0 unstable metrics.
Quick question about the new label: is EventBridge falls under AWS SDK?
Quick question about the new label: is EventBridge falls under AWS SDK?
Yes it does
What Does This Do
This creates a new instrumentation for EventBridge and intercepts
PutEventsRequest
to inject trace context. This allows the agent to combine spans from a distributed (serverless) architecture into a single trace.This PR only injects trace context. I'm working on PR 1 and PR 2 to update the Lambda extension to use this trace context to create EventBridge spans.
Motivation
SNS and SQS are already supported, and the tracer currently injects trace context into message attributes fields for them. However, EventBridge wasn't supported, and this PR aims to fix this problem.
Additional Notes
Overall, AWS's EventBridge API is lacking some features, so we have to do some hacky solutions.
messageAttributes
, and EventBridge calls itdetail
detail
field is given as a raw string. Therefore, we have to manually modify thedetail
string using StringBuilder.detail[_datadog]
asx-datadog-start-time
detail[_datadog]
asx-datadog-resource-name
Traces before these changes
Lambda --> EventBridge --> Lambda Two different traces. Second trace is missing an EventBridge span
Lambda --> EventBridge --> SQS --> Lambda Missing EventBridge span
Lambda --> EventBridge --> SNS --> Lambda Missing EventBridge span
Traces after these (and agent's) changes
Lambda --> EventBridge --> Lambda
Lambda --> EventBridge --> SQS --> Lambda
Lambda --> EventBridge --> SNS --> Lambda
Contributor Checklist
type:
and (comp:
orinst:
) labels in addition to any usefull labelsclose
,fix
or any linking keywords when referencing an issue.Use
solves
instead, and assign the PR milestone to the issueJira ticket: [PROJ-IDENT]