Skip to content

Commit

Permalink
add log for sdk init and include more properties on every logger call
Browse files Browse the repository at this point in the history
  • Loading branch information
wsbrunson committed Jun 6, 2024
1 parent ce521c9 commit 2f41d91
Showing 1 changed file with 59 additions and 53 deletions.
112 changes: 59 additions & 53 deletions src/tracking.js
Original file line number Diff line number Diff line change
Expand Up @@ -103,41 +103,46 @@ export function setupLogger() {
const userAction = getCommit()
? FPTI_USER_ACTION.COMMIT
: FPTI_USER_ACTION.CONTINUE;
const { lang, country } = getLocale();
const mID = getMerchantID();

sdkInitTime = Date.now();

logger.addPayloadBuilder(() => {
return {
referer: window.location.host,
uid: getSessionID(),
env: getEnv(),
};
});

logger.addTrackingBuilder(() => {
const { lang, country } = getLocale();
const mID = getMerchantID();

return {
[FPTI_KEY.CLIENT_ID]: getClientID(),
[FPTI_KEY.CONTEXT_CORRID]: getCorrelationID(),
[FPTI_KEY.DATA_SOURCE]: FPTI_DATA_SOURCE.PAYMENTS_SDK,
[FPTI_KEY.FEED]: FPTI_FEED.PAYMENTS_SDK,
[FPTI_KEY.INTEGRATION_IDENTIFIER]: getClientID(),
[FPTI_KEY.JS_SDK_LIBRARY]: jsSdkLibrary,
[FPTI_KEY.LOCALE]: `${lang}_${country}`,
[FPTI_KEY.PAGE_TYPE]: pageType,
[FPTI_KEY.PARTNER_ATTRIBUTION_ID]: getPartnerAttributionID(),
[FPTI_KEY.REFERER]: window.location.host,
[FPTI_KEY.SDK_INTEGRATION_SOURCE]: integrationSource,
[FPTI_KEY.SDK_NAME]: FPTI_SDK_NAME.PAYMENTS_SDK,
[FPTI_KEY.SDK_VERSION]: version,
[FPTI_KEY.SELLER_ID]: mID && mID.toString(),
[FPTI_KEY.SESSION_UID]: getSessionID(),
[FPTI_KEY.USER_ACTION]: userAction,
[FPTI_KEY.USER_AGENT]: window.navigator && window.navigator.userAgent,
};
});
logger.addPayloadBuilder(() => ({
referer: window.location.host,
uid: getSessionID(),
env: getEnv(),
clientId: getClientID(),
csnwCorrelationId: getCorrelationID(),
jsSdkLibrary,
locale: `${lang}_${country}`,
referrer: window.location.host,
integrationSource,
version,
merchantId: mID,
sessionId: getSessionID(),
userAction,
}));

logger.addTrackingBuilder(() => ({
[FPTI_KEY.CLIENT_ID]: getClientID(),
[FPTI_KEY.CONTEXT_CORRID]: getCorrelationID(),
[FPTI_KEY.DATA_SOURCE]: FPTI_DATA_SOURCE.PAYMENTS_SDK,
[FPTI_KEY.FEED]: FPTI_FEED.PAYMENTS_SDK,
[FPTI_KEY.INTEGRATION_IDENTIFIER]: getClientID(),
[FPTI_KEY.JS_SDK_LIBRARY]: jsSdkLibrary,
[FPTI_KEY.LOCALE]: `${lang}_${country}`,
[FPTI_KEY.PAGE_TYPE]: pageType,
[FPTI_KEY.PARTNER_ATTRIBUTION_ID]: getPartnerAttributionID(),
[FPTI_KEY.REFERER]: window.location.host,
[FPTI_KEY.SDK_INTEGRATION_SOURCE]: integrationSource,
[FPTI_KEY.SDK_NAME]: FPTI_SDK_NAME.PAYMENTS_SDK,
[FPTI_KEY.SDK_VERSION]: version,
[FPTI_KEY.SELLER_ID]: mID && mID.toString(),
[FPTI_KEY.SESSION_UID]: getSessionID(),
[FPTI_KEY.USER_ACTION]: userAction,
[FPTI_KEY.USER_AGENT]: window.navigator && window.navigator.userAgent,
}));

logger.addMetricDimensionBuilder(() => payPalWebV5Dimensions);

Expand All @@ -147,7 +152,7 @@ export function setupLogger() {
[FPTI_KEY.ERROR_DESC]: stringifyErrorMessage(err),
});

logger.error("unhandled_error", {
logger.error("paypal_js_sdk_v5_unhandled_exception", {
err: stringifyError(err),
});

Expand All @@ -160,6 +165,14 @@ export function setupLogger() {
const loadTime = getResourceLoadTime(sdkScript.src);
let cacheType;

logger.addPayloadBuilder(() => ({
// Exclude apps that use the JS SDK and are hosted directly on www.paypal.com. Ex:
// https://www.paypal.com/buttons/smart
// https://www.paypal.com/us/gifts/
loadedInFrame:
isPayPalDomain() && window.xprops ? "paypal" : "non_paypal",
}));

if (loadTime === 0) {
cacheType = "sdk_client_cache_hit";
} else if (typeof loadTime === "number") {
Expand All @@ -168,29 +181,22 @@ export function setupLogger() {
cacheType = "sdk_client_cache_unknown";
}

// Exclude apps that use the JS SDK and are hosted directly on www.paypal.com. Ex:
// https://www.paypal.com/buttons/smart
// https://www.paypal.com/us/gifts/
const isLoadedInFrame = isPayPalDomain() && window.xprops;
const sdkLoadTime = typeof loadTime === "number" ? loadTime : undefined;

logger.info(
`sdk_${isLoadedInFrame ? "paypal" : "non_paypal"}_domain_script_uid_${
sdkScript.hasAttribute(ATTRIBUTES.UID) ? "present" : "missing"
}`
);

if (loadTime) {
logger.track({
[FPTI_KEY.TRANSITION]: "process_js_sdk_init_client",
[FPTI_KEY.SDK_LOAD_TIME]: sdkLoadTime,
[FPTI_KEY.SDK_CACHE]: cacheType,
});
}
logger.info("paypal_js_sdk_v5_init", {
...(isIEIntranet() ? { ie_intranet_mode: true } : {}),
uidAttribute: sdkScript.hasAttribute(ATTRIBUTES.UID)
? "present"
: "missing",
loadTime: sdkLoadTime,
cacheType,
});

if (isIEIntranet()) {
logger.warn("ie_intranet_mode");
}
logger.track({
[FPTI_KEY.TRANSITION]: "process_js_sdk_init_client",
[FPTI_KEY.SDK_LOAD_TIME]: sdkLoadTime,
[FPTI_KEY.SDK_CACHE]: cacheType,
});

logger.metricCounter({
namespace: "sdk_client.init.count",
Expand Down

0 comments on commit 2f41d91

Please sign in to comment.