@Test public void testDefaultCtor() { EventTelemetry eventTelemetry = new EventTelemetry(); String name = eventTelemetry.getName(); assertNull(name); }
@Test public void testSetTimestamp() { EventTelemetry eventTelemetry = new EventTelemetry("mockname"); Date date = new Date(); eventTelemetry.setTimestamp(date); assertEquals(eventTelemetry.getTimestamp(), date); }
@Test public void testTrackEventWithEventTelemetry() { EventTelemetry eventTelemetry = new EventTelemetry("Event"); client.trackEvent(eventTelemetry); verifyAndGetLastEventSent(); }
@Test public void testMultipleEvents() throws Throwable { TelemetryEventFilter tested = new TelemetryEventFilter(); tested.setNotNeededNames("name0, name1"); String[] unneededNames = {"name0", "name1"}; for (String unneeded : unneededNames) { EventTelemetry et = new EventTelemetry(unneeded); boolean result = tested.process(et); assertFalse(result); } EventTelemetry et = new EventTelemetry("other"); boolean result = tested.process(et); assertTrue(result); } }
/** * Sends a custom event record to Application Insights. Appears in custom events in Analytics, Search and Metrics Explorer. * @param name A name for the event. Max length 150. * @param properties Named string values you can use to search and filter events. * @param metrics Numeric measurements associated with this event. Appear under Custom Metrics in Metrics Explorer. */ public void trackEvent(String name, Map<String, String> properties, Map<String, Double> metrics) { if (isDisabled()) { return; } if (Strings.isNullOrEmpty(name)) { name = ""; } EventTelemetry et = new EventTelemetry(name); MapUtil.copy(properties, et.getContext().getProperties()); MapUtil.copy(metrics, et.getMetrics()); this.track(et); }
@Test public void shouldReloadInstrumentationKeyOnTelemetryClient() { TelemetryClient myClient = new TelemetryClient(); EventTelemetry eventTelemetry1 = new EventTelemetry("test1"); myClient.trackEvent(eventTelemetry1); assertThat(eventTelemetry1.getTimestamp()).isNull(); EnvironmentTestUtils.addEnvironment(context, "azure.application-insights.instrumentation-key: 00000000-0000-0000-0000-000000000000"); context.register(PropertyPlaceholderAutoConfiguration.class, ApplicationInsightsTelemetryAutoConfiguration.class); context.refresh(); EventTelemetry eventTelemetry2 = new EventTelemetry("test2"); myClient.trackEvent(eventTelemetry2); assertThat(eventTelemetry2.getTimestamp()).describedAs("Expecting telemetry event to be sent").isNotNull(); }
@Test public void samplingScoreIsRandomIfOperationIdIsNotPresent() { Telemetry eventTelemetry = new EventTelemetry(); Telemetry requestTelemetry = new RequestTelemetry(); double eventTelemetrySamplingScore = SamplingScoreGeneratorV2.getSamplingScore(eventTelemetry); double requestTelemetrySamplingScore = SamplingScoreGeneratorV2.getSamplingScore(requestTelemetry); Assert.assertNotEquals(eventTelemetrySamplingScore, requestTelemetrySamplingScore, 0.0); }
@Test public void testWith100Percent() { FixedRateTelemetrySampler tested = new FixedRateTelemetrySampler(); tested.setIncludeTypes("Event, PageView"); boolean result = tested.isSampledIn(new EventTelemetry()); Assert.assertTrue(result); }
@Test public void testSetName() { EventTelemetry eventTelemetry = new EventTelemetry("mockname"); assertEquals("mockname", eventTelemetry.getName()); eventTelemetry.setName("new name"); assertEquals("new name", eventTelemetry.getName()); }
@Test public void testWith0Percent() { FixedRateTelemetrySampler tested = new FixedRateTelemetrySampler(); tested.setIncludeTypes("Event, PageView"); tested.setSamplingPercentage(0.0); boolean result = tested.isSampledIn(new EventTelemetry()); Assert.assertFalse(result); }
@Test public void testWith90PercentWithOpId() { FixedRateTelemetrySampler tested = new FixedRateTelemetrySampler(); tested.setSamplingPercentage(10.0); Telemetry telemetry = new EventTelemetry(); telemetry.getContext().getOperation().setId("a"); boolean result = tested.isSampledIn(telemetry); Assert.assertFalse(result); }
@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 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 testWith0PercentWithOpIdAndExclude() { FixedRateTelemetrySampler tested = new FixedRateTelemetrySampler(); tested.setSamplingPercentage(0.0); tested.setExcludeTypes("Event, PageView"); Telemetry telemetry = new EventTelemetry(); telemetry.getContext().getOperation().setId("a"); boolean result = tested.isSampledIn(telemetry); Assert.assertTrue(result); } }
@Test public void telemetryBuilderWithStandardFieldsMinimalFields() { String ikey = "123"; for (BaseTelemetry<?> bt : new BaseTelemetry[] { new MetricTelemetry(), new TraceTelemetry(), new ExceptionTelemetry(new RuntimeException("fake")), new RemoteDependencyTelemetry(), new EventTelemetry(), new PageViewTelemetry(), new RequestTelemetry(), new PerformanceCounterTelemetry() }) { String envelopeName = bt instanceof PerformanceCounterTelemetry ? MetricTelemetry.ENVELOPE_NAME : bt.getEnvelopName(); bt.getContext().setInstrumentationKey(ikey); final Date date = new Date(); bt.setTimestamp(date); assertEquals(Telemetry.newBuilder() .setDateTime(LocalStringsUtils.getDateFormatter().format(date)) .setVer(LocalForwarderModelTransformer.CURRENT_ENVELOPE_VERSION) .setInstrumentationKey(ikey) .setDataTypeName(String.format("Microsoft.ApplicationInsights.%s.%s", ikey, envelopeName)).buildPartial(), LocalForwarderModelTransformer.telemetryBuilderWithStandardFields(bt).buildPartial()); } }
@Test public void samplingScoreGeneratedUsingOperationIdIfPresent() { String operationId = generateRandomOperationId(); Telemetry eventTelemetry = new EventTelemetry(); eventTelemetry.getContext().getOperation().setId(operationId); Telemetry requestTelemetry = new RequestTelemetry(); requestTelemetry.getContext().getOperation().setId(operationId); double eventTelemetrySamplingScore = SamplingScoreGeneratorV2.getSamplingScore(eventTelemetry); double requestTelemetrySamplingScore = SamplingScoreGeneratorV2.getSamplingScore(requestTelemetry); Assert.assertEquals(eventTelemetrySamplingScore, requestTelemetrySamplingScore, 0.0); }
@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); }
new ExceptionTelemetry(new RuntimeException("fake")), new RemoteDependencyTelemetry(), new EventTelemetry(), new PageViewTelemetry(), new RequestTelemetry(),
@Test public void testWith99PercentWithOpId() { FixedRateTelemetrySampler tested = new FixedRateTelemetrySampler(); tested.setSamplingPercentage(99.0); Telemetry telemetry = new EventTelemetry(); telemetry.getContext().getOperation().setId("a"); boolean result = tested.isSampledIn(telemetry); telemetry.getContext().getOperation().setId("aa"); result = tested.isSampledIn(telemetry); telemetry.getContext().getOperation().setId("aaasdfsadfasdfsadfsadfsdafasfsadfsdf"); 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); }