private void initializeUser(final UserContext user) { user.setId(getUserId()); user.setUserAgent(getUserAgent("")); }
@Test public void testSetId() { ConcurrentHashMap<String, String> map = new ConcurrentHashMap<String, String>(); UserContext context = new UserContext(map); context.setId("mock"); assertEquals("mock", context.getId()); assertEquals(1, map.size()); assertEquals("mock", map.get(ContextTagKeys.getKeys().getUserId())); }
@Test public void samplingScoreIsRandomIfUserIdIsPresentWithoutOperationId() { String userId = generateRandomUserId(); Telemetry eventTelemetry = new EventTelemetry(); eventTelemetry.getContext().getUser().setId(userId); Telemetry requestTelemetry = new RequestTelemetry(); requestTelemetry.getContext().getUser().setId(userId); double eventTelemetrySamplingScore = SamplingScoreGeneratorV2.getSamplingScore(eventTelemetry); double requestTelemetrySamplingScore = SamplingScoreGeneratorV2.getSamplingScore(requestTelemetry); Assert.assertNotEquals(eventTelemetrySamplingScore, requestTelemetrySamplingScore, 0.0); }
/** * Begin request processing. * * @param req The request to process * @param res The response to modify */ @Override public void onBeginRequest(ServletRequest req, ServletResponse res) { HttpServletRequest request = (HttpServletRequest)req; RequestTelemetryContext context = ThreadContext.getRequestTelemetryContext(); UserCookie userCookie = com.microsoft.applicationinsights.web.internal.cookies.Cookie.getCookie( UserCookie.class, request, UserCookie.COOKIE_NAME); if (userCookie == null) { return; } String userId = userCookie.getUserId(); Date acquisitionDate = userCookie.getAcquisitionDate(); context.setUserCookie(userCookie); UserContext userContext = context.getHttpRequestTelemetry().getContext().getUser(); userContext.setId(userId); userContext.setAcquisitionDate(acquisitionDate); }
/** * Begin request processing. * * @param req The request to process * @param res The response to modify */ @Override public void onBeginRequest(ServletRequest req, ServletResponse res) { HttpServletRequest request = (HttpServletRequest)req; RequestTelemetryContext context = ThreadContext.getRequestTelemetryContext(); UserCookie userCookie = com.microsoft.applicationinsights.web.internal.cookies.Cookie.getCookie( UserCookie.class, request, UserCookie.COOKIE_NAME); if (userCookie == null) { return; } String userId = userCookie.getUserId(); Date acquisitionDate = userCookie.getAcquisitionDate(); context.setUserCookie(userCookie); UserContext userContext = context.getHttpRequestTelemetry().getContext().getUser(); userContext.setId(userId); userContext.setAcquisitionDate(acquisitionDate); }
private void handlePossibleGSMSyntheticRequest(Telemetry telemetry, HttpServletRequest request) { String gsmSyntheticTestRunId = request.getHeader(SYNTHETIC_TEST_RUN_ID); if (CommonUtils.isNullOrEmpty(gsmSyntheticTestRunId)) { return; } String syntheticSource = telemetry.getContext().getOperation().getSyntheticSource(); if (CommonUtils.isNullOrEmpty(syntheticSource)) { telemetry.getContext().getOperation().setSyntheticSource(SYNTHETIC_SOURCE_NAME); } String sessionId = telemetry.getContext().getSession().getId(); if (CommonUtils.isNullOrEmpty(sessionId)) { telemetry.getContext().getSession().setId(gsmSyntheticTestRunId); } String userId = telemetry.getContext().getUser().getId(); if (CommonUtils.isNullOrEmpty(userId)) { String header = request.getHeader(SYNTHETIC_TEST_LOCATION); telemetry.getContext().getUser().setId(header); } }
/** * Initializes the properties of the given telemetry. * * @param telemetry The {@link com.microsoft.applicationinsights.telemetry.Telemetry} to initialize. */ @Override protected void onInitializeTelemetry(Telemetry telemetry) { UserContext userContext = telemetry.getContext().getUser(); if (!CommonUtils.isNullOrEmpty(userContext.getId())) { return; } RequestTelemetry requestTelemetry = ThreadContext.getRequestTelemetryContext().getHttpRequestTelemetry(); UserContext requestUserContext = requestTelemetry.getContext().getUser(); if (requestUserContext == null) { return; } userContext.setId(requestUserContext.getId()); Date requestUserAcquisitionDate = requestUserContext.getAcquisitionDate(); userContext.setAcquisitionDate(requestUserAcquisitionDate); } }
private void handlePossibleGSMSyntheticRequest(Telemetry telemetry, HttpServletRequest request) { String gsmSyntheticTestRunId = request.getHeader(SYNTHETIC_TEST_RUN_ID); if (CommonUtils.isNullOrEmpty(gsmSyntheticTestRunId)) { return; } String syntheticSource = telemetry.getContext().getOperation().getSyntheticSource(); if (CommonUtils.isNullOrEmpty(syntheticSource)) { telemetry.getContext().getOperation().setSyntheticSource(SYNTHETIC_SOURCE_NAME); } String sessionId = telemetry.getContext().getSession().getId(); if (CommonUtils.isNullOrEmpty(sessionId)) { telemetry.getContext().getSession().setId(gsmSyntheticTestRunId); } String userId = telemetry.getContext().getUser().getId(); if (CommonUtils.isNullOrEmpty(userId)) { String header = request.getHeader(SYNTHETIC_TEST_LOCATION); telemetry.getContext().getUser().setId(header); } }
/** * Initializes the properties of the given telemetry. * * @param telemetry The {@link com.microsoft.applicationinsights.telemetry.Telemetry} to initialize. */ @Override protected void onInitializeTelemetry(Telemetry telemetry) { UserContext userContext = telemetry.getContext().getUser(); if (!CommonUtils.isNullOrEmpty(userContext.getId())) { return; } RequestTelemetry requestTelemetry = ThreadContext.getRequestTelemetryContext().getHttpRequestTelemetry(); UserContext requestUserContext = requestTelemetry.getContext().getUser(); if (requestUserContext == null) { return; } userContext.setId(requestUserContext.getId()); Date requestUserAcquisitionDate = requestUserContext.getAcquisitionDate(); userContext.setAcquisitionDate(requestUserAcquisitionDate); } }
private void handleCommonSyntheticRequest(String syntheticSourceHeader, Telemetry telemetry, HttpServletRequest request) { String syntheticSource = telemetry.getContext().getOperation().getSyntheticSource(); if (CommonUtils.isNullOrEmpty(syntheticSource)) { telemetry.getContext().getOperation().setSyntheticSource(syntheticSourceHeader); } String userId = telemetry.getContext().getUser().getId(); if (CommonUtils.isNullOrEmpty(userId)) { String header = request.getHeader(SYNTHETIC_TEST_USER_ID); telemetry.getContext().getUser().setId(header); } String sessionId = telemetry.getContext().getSession().getId(); if (CommonUtils.isNullOrEmpty(sessionId)) { String header = request.getHeader(SYNTHETIC_TEST_SESSION_ID); telemetry.getContext().getSession().setId(header); } String operationId = telemetry.getContext().getOperation().getId(); if (CommonUtils.isNullOrEmpty(operationId)) { String header = request.getHeader(SYNTHETIC_TEST_OPERATION_ID); telemetry.getContext().getOperation().setId(header); } putInProperties(telemetry, request, SYNTHETIC_TEST_TEST_NAME, SYNTHETIC_TEST_RUN_ID, SYNTHETIC_TEST_LOCATION); }
@Before public void classInitialize() { acquisitionTime = DateTimeUtils.getDateTimeNow(); RequestTelemetryContext context = new RequestTelemetryContext(DateTimeUtils.getDateTimeNow().getTime()); ThreadContext.setRequestTelemetryContext(context); // Set session ID for the http request. RequestTelemetry requestTelemetry = context.getHttpRequestTelemetry(); requestTelemetry.getContext().getUser().setId(REQUEST_USER_ID); requestTelemetry.getContext().getUser().setAcquisitionDate(acquisitionTime); }
private void handleCommonSyntheticRequest(String syntheticSourceHeader, Telemetry telemetry, HttpServletRequest request) { String syntheticSource = telemetry.getContext().getOperation().getSyntheticSource(); if (CommonUtils.isNullOrEmpty(syntheticSource)) { telemetry.getContext().getOperation().setSyntheticSource(syntheticSourceHeader); } String userId = telemetry.getContext().getUser().getId(); if (CommonUtils.isNullOrEmpty(userId)) { String header = request.getHeader(SYNTHETIC_TEST_USER_ID); telemetry.getContext().getUser().setId(header); } String sessionId = telemetry.getContext().getSession().getId(); if (CommonUtils.isNullOrEmpty(sessionId)) { String header = request.getHeader(SYNTHETIC_TEST_SESSION_ID); telemetry.getContext().getSession().setId(header); } String operationId = telemetry.getContext().getOperation().getId(); if (CommonUtils.isNullOrEmpty(operationId)) { String header = request.getHeader(SYNTHETIC_TEST_OPERATION_ID); telemetry.getContext().getOperation().setId(header); } putInProperties(telemetry, request, SYNTHETIC_TEST_TEST_NAME, SYNTHETIC_TEST_RUN_ID, SYNTHETIC_TEST_LOCATION); }
@Test public void testWith0PercentWithUserId() { FixedRateTelemetrySampler tested = new FixedRateTelemetrySampler(); tested.setIncludeTypes("Event, PageView"); tested.setSamplingPercentage(0.0); Telemetry telemetry = new EventTelemetry(); telemetry.getContext().getUser().setId("B"); boolean result = tested.isSampledIn(telemetry); Assert.assertFalse(result); }
@Test public void testUserIdNotOverriddenIfAlreadySet() { String expectedUserId = "SOME_ID"; TraceTelemetry telemetry = new TraceTelemetry(); telemetry.getContext().getUser().setId(expectedUserId); userTelemetryInitializer.onInitializeTelemetry(telemetry); Assert.assertEquals(expectedUserId, telemetry.getContext().getUser().getId()); }
@Test public void testWith100PercentWithUserId() { FixedRateTelemetrySampler tested = new FixedRateTelemetrySampler(); tested.setExcludeTypes("Event, PageView"); tested.setSamplingPercentage(100.0); Telemetry telemetry = new EventTelemetry(); telemetry.getContext().getUser().setId("B"); boolean result = tested.isSampledIn(telemetry); Assert.assertTrue(result); }
@Test public void samplingScoreIsNotAffectedByPresenceOfUserId() { String userId1 = generateRandomUserId(); String userId2 = generateRandomUserId(); String operationId = generateRandomOperationId(); Telemetry eventTelemetry = new EventTelemetry(); eventTelemetry.getContext().getUser().setId(userId1); eventTelemetry.getContext().getOperation().setId(operationId); Telemetry requestTelemetry = new RequestTelemetry(); requestTelemetry.getContext().getUser().setId(userId2); requestTelemetry.getContext().getOperation().setId(operationId); double eventTelemetrySamplingScore = SamplingScoreGeneratorV2.getSamplingScore(eventTelemetry); double requestTelemetrySamplingScore = SamplingScoreGeneratorV2.getSamplingScore(requestTelemetry); Assert.assertEquals(eventTelemetrySamplingScore, requestTelemetrySamplingScore, 0.0); }
@Test public void testNoUserCookie() { RequestTelemetryContext requestTelemetryContext = ThreadContext.getRequestTelemetryContext(); requestTelemetryContext.getHttpRequestTelemetry().getContext().getUser().setAcquisitionDate(null); requestTelemetryContext.getHttpRequestTelemetry().getContext().getUser().setId(null); TraceTelemetry telemetry = new TraceTelemetry(); userTelemetryInitializer.onInitializeTelemetry(telemetry); Assert.assertNull(telemetry.getContext().getUser().getId()); Assert.assertNull(telemetry.getContext().getUser().getAcquisitionDate()); }