File tree Expand file tree Collapse file tree 2 files changed +10
-7
lines changed Expand file tree Collapse file tree 2 files changed +10
-7
lines changed Original file line number Diff line number Diff line change @@ -9,11 +9,10 @@ jest.mock("./log", () => ({
9
9
} ) ) ;
10
10
11
11
describe ( "span-pointers utils" , ( ) => {
12
- const mockS3PointerHash = "mock-hash-123" ;
12
+ const mockPointerHash = "mock-hash-123" ;
13
13
14
14
beforeEach ( ( ) => {
15
- // Mock the generateS3PointerHash function
16
- jest . spyOn ( spanPointers , "generateS3PointerHash" ) . mockReturnValue ( mockS3PointerHash ) ;
15
+ jest . spyOn ( spanPointers , "generatePointerHash" ) . mockReturnValue ( mockPointerHash ) ;
17
16
} ) ;
18
17
19
18
afterEach ( ( ) => {
@@ -58,7 +57,7 @@ describe("span-pointers utils", () => {
58
57
59
58
const result = getSpanPointerAttributes ( eventTypes . s3 , event ) ;
60
59
expect ( result ) . toEqual ( expected ) ;
61
- expect ( spanPointers . generateS3PointerHash ) . toHaveBeenCalledWith ( "test-bucket" , "test-key" , "test-etag" ) ;
60
+ expect ( spanPointers . generatePointerHash ) . toHaveBeenCalledWith ( [ "test-bucket" , "test-key" , "test-etag" ] ) ;
62
61
} ) ;
63
62
64
63
it ( "processes multiple S3 records correctly" , ( ) => {
Original file line number Diff line number Diff line change 4
4
SPAN_LINK_POINTER_KIND ,
5
5
S3_PTR_KIND ,
6
6
SPAN_POINTER_DIRECTION ,
7
- generateS3PointerHash ,
7
+ generatePointerHash ,
8
8
} from "dd-trace/packages/dd-trace/src/span_pointers" ;
9
9
10
10
interface SpanPointerAttributes {
@@ -54,14 +54,18 @@ function processS3Event(event: any): SpanPointerAttributes[] {
54
54
const s3Event = record ?. s3 ;
55
55
const bucketName = s3Event ?. bucket ?. name ;
56
56
const objectKey = s3Event ?. object ?. key ;
57
- const eTag = s3Event ?. object ?. eTag ;
57
+ let eTag = s3Event ?. object ?. eTag ;
58
58
59
59
if ( ! bucketName || ! objectKey || ! eTag ) {
60
60
logDebug ( "Unable to calculate span pointer hash because of missing parameters." ) ;
61
61
continue ;
62
62
}
63
63
64
- const pointerHash = generateS3PointerHash ( bucketName , objectKey , eTag ) ;
64
+ // https://github.com/DataDog/dd-span-pointer-rules/blob/main/AWS/S3/Object/README.md
65
+ if ( eTag . startsWith ( '"' ) && eTag . endsWith ( '"' ) ) {
66
+ eTag = eTag . slice ( 1 , - 1 )
67
+ }
68
+ const pointerHash = generatePointerHash ( [ bucketName , objectKey , eTag ] ) ;
65
69
const spanPointerAttributes = {
66
70
"ptr.kind" : S3_PTR_KIND ,
67
71
"ptr.dir" : SPAN_POINTER_DIRECTION . UPSTREAM ,
You can’t perform that action at this time.
0 commit comments