Skip to content

Commit c9e623b

Browse files
committed
Use standard hashing function
1 parent f3f2240 commit c9e623b

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed

src/utils/span-pointers.spec.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,10 @@ jest.mock("./log", () => ({
99
}));
1010

1111
describe("span-pointers utils", () => {
12-
const mockS3PointerHash = "mock-hash-123";
12+
const mockPointerHash = "mock-hash-123";
1313

1414
beforeEach(() => {
15-
// Mock the generateS3PointerHash function
16-
jest.spyOn(spanPointers, "generateS3PointerHash").mockReturnValue(mockS3PointerHash);
15+
jest.spyOn(spanPointers, "generatePointerHash").mockReturnValue(mockPointerHash);
1716
});
1817

1918
afterEach(() => {
@@ -58,7 +57,7 @@ describe("span-pointers utils", () => {
5857

5958
const result = getSpanPointerAttributes(eventTypes.s3, event);
6059
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"]);
6261
});
6362

6463
it("processes multiple S3 records correctly", () => {

src/utils/span-pointers.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import {
44
SPAN_LINK_POINTER_KIND,
55
S3_PTR_KIND,
66
SPAN_POINTER_DIRECTION,
7-
generateS3PointerHash,
7+
generatePointerHash,
88
} from "dd-trace/packages/dd-trace/src/span_pointers";
99

1010
interface SpanPointerAttributes {
@@ -54,14 +54,18 @@ function processS3Event(event: any): SpanPointerAttributes[] {
5454
const s3Event = record?.s3;
5555
const bucketName = s3Event?.bucket?.name;
5656
const objectKey = s3Event?.object?.key;
57-
const eTag = s3Event?.object?.eTag;
57+
let eTag = s3Event?.object?.eTag;
5858

5959
if (!bucketName || !objectKey || !eTag) {
6060
logDebug("Unable to calculate span pointer hash because of missing parameters.");
6161
continue;
6262
}
6363

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]);
6569
const spanPointerAttributes = {
6670
"ptr.kind": S3_PTR_KIND,
6771
"ptr.dir": SPAN_POINTER_DIRECTION.UPSTREAM,

0 commit comments

Comments
 (0)