/** * Constructs new telemetry client proxy instance. * @param instrumentationKey The instrumentation key for sending the events. */ public LogTelemetryClientProxy(String instrumentationKey) { this(new TelemetryClient(), instrumentationKey); }
private static TelemetryClient buildTelemetryClient(String instrumentationKey) { TelemetryClient client = new TelemetryClient(); if (!isValid(instrumentationKey)) { log.warn("Telemetry instrumentationKey {} is invalid", instrumentationKey); throw new IllegalArgumentException("Telemetry instrumentationKey is invalid"); } client.getContext().setInstrumentationKey(instrumentationKey); return client; }
public void trackEvent(@NonNull String eventName) { this.client.trackEvent(eventName, this.properties, null); this.client.flush(); }
@Override public void run() { long runElapsed = System.nanoTime(); int i = 0; for (; i < numberOfTelemetries; ++i) { int mod = i % 4; switch (mod) { case 0: telemetryClient.trackEvent(MOCK_EVENT_NAME); break; case 1: telemetryClient.trackMetric(MOCK_METRIC_NAME, MOCK_METRIC_VALUE); break; case 2: telemetryClient.trackTrace(MOCK_TRACE_NAME); break; default: telemetryClient.trackPageView(MOCK_PAGE_VIEW_NAME); break; } } sendTimeInNanos = System.nanoTime() - runElapsed; acceptedUntilEndOfSending = testResultsVerifier.getCurrentAccepted(); } });
TelemetryClient appInsights = new TelemetryClient(); appInsights.getContext().setInstrumentationKey(args[0]); String iKey = appInsights.getContext().getInstrumentationKey(); if (iKey == null) { System.out.println("Error: no iKey set in ApplicationInsights.xml or as a parameter for this program."); System.out.println("Application iKey set to " + appInsights.getContext().getInstrumentationKey()); TelemetryConfiguration.getActive().getChannel().setDeveloperMode(true); appInsights.getContext().getProperties().put("programmatic", "works"); System.out.println("Set context property -- programmatic=works"); appInsights.trackPageView("default page"); System.out.println("[1] PageView -- page=\"default page\""); appInsights.trackEvent("A test event", null, metrics); System.out.println("[2] Custom Event (metric) -- name=\"A test event\", metric:Answers=15"); appInsights.trackTrace("Things seem to be going well"); System.out.println("[3] Trace -- text=\"Things seem to be going well\""); mt.setCount(100); mt.setStandardDeviation(2.43); appInsights.trackMetric(mt); System.out.println("[4] Metric -- metric:\"Test time\", value=17.0, Max=20.0, Min=10.0, Count=100 and STDV=2.43"); rt.setHttpMethod("GET");
@Override public void setInstrumentationKey(String key) { if (this.telemetryClient != null && key != null) { this.telemetryClient.getContext().setInstrumentationKey(key); } }
private void setupTelemetryClientMock(final List<Telemetry> telemetries) { Mockito.when(this.telemetryClientMock.getContext()).thenReturn(new TelemetryContext()); Mockito.doAnswer(new Answer() { @Override public Object answer(InvocationOnMock invocation) throws Throwable { Telemetry telemetry = ((Telemetry) invocation.getArguments()[0]); telemetries.add(telemetry); return null; } }).when(this.telemetryClientMock).track(Matchers.any(Telemetry.class)); }
private FilterAndTelemetryClientMock createInitializedFilterWithMockTelemetryClient(boolean withTelemetryClient, boolean clientThrows) throws ServletException, NoSuchFieldException, IllegalAccessException { Filter filter = createInitializedFilter(); Field field = WebRequestTrackingFilter.class.getDeclaredField("telemetryClient"); field.setAccessible(true); TelemetryClient mockTelemetryClient = null; if (withTelemetryClient) { mockTelemetryClient = spy(new TelemetryClient()); if (clientThrows) { doThrow(new RuntimeException()).when(mockTelemetryClient).trackException(any(Exception.class)); } } field.set(filter, mockTelemetryClient); return new FilterAndTelemetryClientMock(filter, mockTelemetryClient); }
/** * Send information about the page viewed in the application. * @param telemetry The telemetry to send */ public void trackPageView(PageViewTelemetry telemetry) { track(telemetry); }
@Override public void run() { tclient.trackEvent(name, properties, metrics); } };
@Test public void testMethodsOnTelemetryAreCalledWhenTracking() { TelemetryChannel mockChannel = Mockito.mock(TelemetryChannel.class); configuration.setChannel(mockChannel); TelemetryContext mockContext = new TelemetryContext(); Telemetry mockTelemetry = Mockito.mock(Telemetry.class); Mockito.doReturn(mockContext).when(mockTelemetry).getContext(); TelemetryClient telemetryClient = new TelemetryClient(configuration); telemetryClient.track(mockTelemetry); Mockito.verify(mockChannel, Mockito.times(1)).send(mockTelemetry); Mockito.verify(mockTelemetry, Mockito.times(1)).setTimestamp(any(Date.class)); }
@Test public void testOverideNodeName(){ String overrideNode = "NewNodeName"; client.getContext().getInternal().setNodeName(overrideNode); client.trackEvent("Event"); EventTelemetry telemetry = (EventTelemetry) verifyAndGetLastEventSent(); String nodeName = telemetry.getContext().getInternal().getNodeName(); Assert.assertTrue("NodeName was not overriden", nodeName.equals(overrideNode)); }
@Override public void run() { tclient.trackException(exception, properties, metrics); } };
@Override public void run() { tclient.trackMetric(mt); } };
@Test public void testFlush() { client.flush(); Mockito.verify(channel, Mockito.times(1)).flush(); }
private void testIkeySystemProperty(String propertyName) { System.setProperty(propertyName, "00000000-0000-0000-0000-000000000001"); context.register(PropertyPlaceholderAutoConfiguration.class, ApplicationInsightsTelemetryAutoConfiguration.class); context.refresh(); TelemetryClient telemetryClient = context.getBean(TelemetryClient.class); TelemetryConfiguration telemetryConfiguration = context.getBean(TelemetryConfiguration.class); assertThat(telemetryConfiguration).isSameAs(TelemetryConfiguration.getActive()); assertThat(telemetryConfiguration.getInstrumentationKey()).isEqualTo("00000000-0000-0000-0000-000000000001"); assertThat(telemetryClient.getContext().getInstrumentationKey()).isEqualTo("00000000-0000-0000-0000-000000000001"); System.clearProperty(propertyName); }
private void setupTelemetryClientMock(final List<Telemetry> telemetries) { Mockito.when(this.telemetryClientMock.getContext()).thenReturn(new TelemetryContext()); Mockito.doAnswer(new Answer() { @Override public Object answer(InvocationOnMock invocation) throws Throwable { Telemetry telemetry = ((Telemetry) invocation.getArguments()[0]); telemetries.add(telemetry); return null; } }).when(this.telemetryClientMock).track(Matchers.any(Telemetry.class)); }
TelemetryClient telemetryClient = new TelemetryClient(); telemetryClient.trackException(new Exception());
/** * Sends a request record to Application Insights. Appears in "requests" in Search and Analytics, * and contributes to metric charts such as Server Requests, Server Response Time, Failed Requests. * * @param request request */ public void trackRequest(RequestTelemetry request) { track(request); }
/** * 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. */ public void trackEvent(String name) { trackEvent(name, null, null); }