summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschneefux <schneefux+commit@schneefux.xyz>2017-05-16 14:26:05 +0200
committerschneefux <schneefux+commit@schneefux.xyz>2017-05-16 14:26:05 +0200
commit5981f309d5ca2f3671926002ca647559f01df704 (patch)
tree274a8551f0d6e253f136b647db8419189d32bffc
parent498a971465c632daba93e01f017893057ba42505 (diff)
downloadtelesucker-5981f309d5ca2f3671926002ca647559f01df704.tar.gz
telesucker-5981f309d5ca2f3671926002ca647559f01df704.zip
log AWS requests
-rw-r--r--worker.js47
1 files changed, 39 insertions, 8 deletions
diff --git a/worker.js b/worker.js
index a82c903..c998e0d 100644
--- a/worker.js
+++ b/worker.js
@@ -58,8 +58,14 @@ if (LOGGLY_TOKEN)
const payload = JSON.parse(msg.content.toString());
if (msg.properties.type == "sample")
await getSample(payload);
- if (msg.properties.type == "telemetry")
- await getTelemetry(payload, msg.properties.headers.match_api_id);
+ if (msg.properties.type == "telemetry") {
+ try {
+ await getTelemetry(payload, msg.properties.headers.match_api_id);
+ } catch (err) {
+ logger.error("Telemetry download error", err);
+ ch.nack(msg, false, true); // TODO how to handle this?
+ }
+ }
logger.info("done", payload);
ch.ack(msg);
@@ -96,12 +102,7 @@ if (LOGGLY_TOKEN)
logger.info("downloading Telemetry",
{ url: url, match_api_id: match_api_id });
// download
- const telemetry = await request(url, {
- json: true,
- gzip: true,
- strictSSL: true,
- forever: true
- }),
+ const telemetry = await loggedRequest(url),
spawn = telemetry.filter((ev) => ev.type == "PlayerFirstSpawn")[0];
// return telemetry { m_a_id, data, start, end } in an interval
@@ -135,4 +136,34 @@ if (LOGGLY_TOKEN)
logger.info("Telemetry done",
{ url: url, match_api_id: match_api_id });
}
+
+ async function loggedRequest(url) {
+ let response;
+ try {
+ const opts = {
+ json: true,
+ gzip: true,
+ time: true,
+ forever: true,
+ strictSSL: true,
+ resolveWithFullResponse: true
+ };
+ logger.info("AWS request", { uri: url, });
+ response = await request(url, opts);
+ return response.body;
+ } catch (err) {
+ logger.warn("AWS error", {
+ uri: url,
+ error: err.response.body
+ });
+ throw err;
+ } finally {
+ if (response != undefined) // else non-requests error
+ logger.info("AWS response", {
+ status: response.statusCode,
+ connection_start: response.timings.connect,
+ connection_end: response.timings.end
+ });
+ }
+ }
})();