Skip to content

Commit c1c1405

Browse files
author
Keyur
committed
Fix: Event Request URI
Fix: Event Request URI Fix: Event Response time Add: Direction field to event model Add: Weight field to determine the weight of an API call Refactor: Update README.md Refactor: Update moesifapi dependency to 2.0.7 Bump version to 1.2.5
1 parent 9205a4d commit c1c1405

File tree

4 files changed

+30
-21
lines changed

4 files changed

+30
-21
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ into the [_Moesif Portal_](https://www.moesif.com/), click on the top right menu
8585
## Repo file structure
8686

8787
- `lib/index.js` the middleware lib
88-
- `index.js` sample AWS Lambda function using the middleware
88+
- `app.js` sample AWS Lambda function using the middleware
8989

9090

9191
## Configuration options
@@ -349,7 +349,7 @@ The userId field is required.
349349

350350
## Other integrations
351351

352-
To view more more documentation on integration options, please visit __[the Integration Options Documentation](https://www.moesif.com/docs/getting-started/integration-options/).__
352+
To view more documentation on integration options, please visit __[the Integration Options Documentation](https://www.moesif.com/docs/getting-started/integration-options/).__
353353

354354
[ico-built-for]: https://img.shields.io/badge/built%20for-aws%20lambda-blue.svg
355355
[ico-license]: https://img.shields.io/badge/License-Apache%202.0-green.svg

lib/index.js

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ function logEvent(event, context, err, result, options, moesifController) {
153153
new Date(event && event.requestContext && event.requestContext.requestTimeEpoch) :
154154
startTime;
155155

156-
logData.request.uri = getPathWithQueryStringParams(event);
156+
logData.request.uri = getURLWithQueryStringParams(event);
157157
logData.request.verb = event.httpMethod;
158158
logData.request.apiVerion = options.getApiVersion(event, context);
159159
logData.request.ipAddress = requestIp.getClientIp(event) || (event.requestContext && event.requestContext.identity && event.requestContext.identity.sourceIp);
@@ -173,7 +173,7 @@ function logEvent(event, context, err, result, options, moesifController) {
173173

174174
logMessage(options.debug, 'logEvent', 'created request: \n' + JSON.stringify(logData.request));
175175
var safeRes = result || {};
176-
logData.response.time = new Date(Math.max(logData.request.time.getTime(), Date.now()));
176+
logData.response.time = Math.max(new Date(logData.request.time).getTime(), Date.now());
177177
logData.response.status = safeRes.statusCode ? parseInt(safeRes.statusCode) : 599;
178178
logData.response.headers = mapResponseHeaders(event, context, safeRes);
179179

@@ -197,12 +197,19 @@ function logEvent(event, context, err, result, options, moesifController) {
197197
logData.sessionToken = options.getSessionToken(event, context);
198198
logData.tags = options.getTags(event, context);
199199

200+
// Set API direction
201+
logData.direction = "Incoming"
202+
200203
logMessage(options.debug, 'logEvent', 'applied options to data: \n' + JSON.stringify(logData));
201204

202205
ensureValidLogData(logData);
203206

204207
// This is fire and forget, we don't want logging to hold up the request so don't wait for the callback
205208
if (!options.skip(event, context) && moesifConfigManager.shouldSend(logData && logData.userId, logData && logData.companyId)) {
209+
210+
let sampleRate = moesifConfigManager._getSampleRate(logData && logData.userId, logData && logData.companyId);
211+
logData.weight = sampleRate === 0 ? 1 : Math.floor(100 / sampleRate);
212+
206213
logMessage(options.debug, 'logEvent', 'sending data invoking moesifAPI');
207214

208215
moesifController.createEvent(new EventModel(logData), function(err) {
@@ -272,9 +279,11 @@ function bodyToBase64(body) {
272279
}
273280
}
274281

275-
function getPathWithQueryStringParams(event) {
282+
function getURLWithQueryStringParams(event) {
276283
try {
277-
return url.format({ pathname: event.path, query: event.queryStringParameters });
284+
var protocol = (event.headers && event.headers['X-Forwarded-Proto'] || event.headers['x-forwarded-proto']) ? (event.headers['X-Forwarded-Proto'] || event.headers['x-forwarded-proto']) : 'http';
285+
var host = event.headers.Host || event.headers.host;
286+
return url.format({ protocol: protocol, host: host, pathname: event.path, query: event.queryStringParameters });
278287
} catch (err) {
279288
return '/';
280289
}

package-lock.json

Lines changed: 13 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "moesif-aws-lambda",
3-
"version": "1.2.4",
3+
"version": "1.2.5",
44
"description": "API Monitoring Middleware for AWS Lambda",
55
"main": "lib/index.js",
66
"keywords": [
@@ -33,7 +33,7 @@
3333
},
3434
"dependencies": {
3535
"lodash": "^4.17.15",
36-
"moesifapi": "^2.0.5",
36+
"moesifapi": "^2.0.7",
3737
"request-ip": "^2.1.3"
3838
},
3939
"scripts": {

0 commit comments

Comments
 (0)