@segment/action-destinations 3.444.1-staging-7573429f9.0 → 3.444.1-staging-785e660be.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Settings } from './generated-types';
|
|
2
2
|
import type { Payload } from './send/generated-types';
|
|
3
3
|
import { Logger, StatsContext } from '@segment/actions-core/destination-kit';
|
|
4
|
+
import { MultiStatusResponse } from '@segment/actions-core';
|
|
4
5
|
export declare const validateIamRoleArnFormat: (arn: string) => boolean;
|
|
5
|
-
export declare const send: (settings: Settings, payloads: Payload[],
|
|
6
|
+
export declare const send: (settings: Settings, payloads: Payload[], statsContext: StatsContext | undefined, logger: Logger | undefined, signal?: AbortSignal) => Promise<MultiStatusResponse>;
|
|
@@ -23,25 +23,74 @@ const createKinesisClient = async (iamRoleArn, iamExternalId, awsRegion) => {
|
|
|
23
23
|
credentials: credentials
|
|
24
24
|
});
|
|
25
25
|
};
|
|
26
|
-
const send = async (settings, payloads,
|
|
26
|
+
const send = async (settings, payloads, statsContext, logger, signal) => {
|
|
27
27
|
const { iamRoleArn, iamExternalId } = settings;
|
|
28
28
|
const { streamName, awsRegion } = payloads[0];
|
|
29
29
|
const entries = transformPayloads(payloads);
|
|
30
|
+
statsContext?.statsClient?.histogram('actions_kinesis.batch_size', entries?.length, statsContext?.tags);
|
|
31
|
+
statsContext?.statsClient?.incr('actions_kinesis.request_hit', 1, statsContext?.tags);
|
|
30
32
|
try {
|
|
31
33
|
const client = await createKinesisClient(iamRoleArn, iamExternalId, awsRegion);
|
|
32
34
|
const command = new client_kinesis_1.PutRecordsCommand({
|
|
33
35
|
StreamName: streamName,
|
|
34
36
|
Records: entries
|
|
35
37
|
});
|
|
36
|
-
await client.send(command, { abortSignal: signal });
|
|
38
|
+
const response = await client.send(command, { abortSignal: signal });
|
|
39
|
+
const multiResp = handleMultiStatusResponse(response, statsContext, payloads);
|
|
40
|
+
return multiResp;
|
|
37
41
|
}
|
|
38
42
|
catch (error) {
|
|
39
43
|
if (error.name === 'AbortError') {
|
|
40
44
|
throw new actions_core_1.RequestTimeoutError();
|
|
41
45
|
}
|
|
42
46
|
logger?.crit('Failed to send batch to Kinesis:', error);
|
|
43
|
-
|
|
47
|
+
handleError(error, statsContext);
|
|
44
48
|
}
|
|
49
|
+
return Promise.resolve(new actions_core_1.MultiStatusResponse());
|
|
45
50
|
};
|
|
46
51
|
exports.send = send;
|
|
52
|
+
const handleError = (error, statsContext) => {
|
|
53
|
+
if (error?.name === 'AccessDeniedException') {
|
|
54
|
+
statsContext?.statsClient?.incr('actions_kinesis.access_denied_exception', 1, statsContext?.tags);
|
|
55
|
+
throw new actions_core_1.IntegrationError(`Access denied. Please check that the provided IAM Role has the necessary permissions to access Kinesis.`, 'ACCESS_DENIED', 403);
|
|
56
|
+
}
|
|
57
|
+
statsContext?.statsClient?.incr('actions_kinesis.error', 1, statsContext?.tags);
|
|
58
|
+
throw new actions_core_1.IntegrationError(`Failed to send batch to Kinesis: ${error?.message}`, 'DEPENDENCY_ERROR', 500);
|
|
59
|
+
};
|
|
60
|
+
const handleMultiStatusResponse = (response, statsContext, payloads) => {
|
|
61
|
+
const multiStatusResponse = new actions_core_1.MultiStatusResponse();
|
|
62
|
+
const { FailedRecordCount, Records } = response;
|
|
63
|
+
if (!FailedRecordCount || FailedRecordCount == 0) {
|
|
64
|
+
statsContext?.statsClient?.incr('actions_kinesis.successful_record_count', Records?.length || 0, statsContext?.tags);
|
|
65
|
+
Records?.forEach((record, index) => {
|
|
66
|
+
multiStatusResponse.setSuccessResponseAtIndex(index, {
|
|
67
|
+
status: 200,
|
|
68
|
+
body: record,
|
|
69
|
+
sent: payloads[index]
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
return multiStatusResponse;
|
|
73
|
+
}
|
|
74
|
+
statsContext?.statsClient?.incr('actions_kinesis.failed_record_count', FailedRecordCount, statsContext?.tags);
|
|
75
|
+
Records?.forEach((record, index) => {
|
|
76
|
+
if (record.ErrorCode) {
|
|
77
|
+
multiStatusResponse.setErrorResponseAtIndex(index, {
|
|
78
|
+
status: 400,
|
|
79
|
+
errortype: record.ErrorCode,
|
|
80
|
+
errormessage: record.ErrorMessage
|
|
81
|
+
});
|
|
82
|
+
const errorCode = record.ErrorCode || 'UnknownError';
|
|
83
|
+
statsContext?.statsClient?.incr(`actions_kinesis.error.${errorCode}`, 1, statsContext?.tags);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
multiStatusResponse.setSuccessResponseAtIndex(index, {
|
|
87
|
+
status: 200,
|
|
88
|
+
body: record,
|
|
89
|
+
sent: payloads[index]
|
|
90
|
+
});
|
|
91
|
+
statsContext?.statsClient?.incr('actions_kinesis.successful_record_count', 1, statsContext?.tags);
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
return multiStatusResponse;
|
|
95
|
+
};
|
|
47
96
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/destinations/aws-kinesis/utils.ts"],"names":[],"mappings":";;;AAGA,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/destinations/aws-kinesis/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@segment/action-destinations",
|
|
3
3
|
"description": "Destination Actions engine and definitions.",
|
|
4
|
-
"version": "3.444.1-staging-
|
|
4
|
+
"version": "3.444.1-staging-785e660be.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/segmentio/action-destinations",
|
|
@@ -92,5 +92,5 @@
|
|
|
92
92
|
"__tests__/__helpers__/"
|
|
93
93
|
]
|
|
94
94
|
},
|
|
95
|
-
"gitHead": "
|
|
95
|
+
"gitHead": "a4a4f56266b4586b29ef0dd439e8c3c5bb489148"
|
|
96
96
|
}
|