public void trackDependency(String dependencyName, String commandName, Duration duration, boolean success) { RemoteDependencyTelemetry remoteDependencyTelemetry = new RemoteDependencyTelemetry(dependencyName, commandName, duration, success); trackDependency(remoteDependencyTelemetry); }
/** * Sends a dependency record to Application Insights. Appears in "dependencies" in Search and Analytics. * Set device type == "PC" to have the record contribute to metric charts such as * Server Dependency Calls, Dependency Response Time, and Dependency Failures. * @param telemetry telemetry */ public void trackDependency(RemoteDependencyTelemetry telemetry) { if (isDisabled()) { return; } if (telemetry == null) { telemetry = new RemoteDependencyTelemetry(""); } track(telemetry); }
/** * Success=false * @return */ public Runnable getTrackDependency_Full() { RemoteDependencyTelemetry rdt = new RemoteDependencyTelemetry("AiTestDependency"); rdt.setCommandName("TestCommand2"); rdt.setDuration(new Duration(999L)); rdt.setResultCode("503"); rdt.setSuccess(false); rdt.setTarget("some-target"); rdt.setTarget("fake-type"); for (Entry<String, String> entry : getPropertyMapForMethod("Dependency").entrySet()) { rdt.getProperties().put(entry.getKey(), entry.getValue()); } for (Entry<String, Double> entry : getMetricMapForMethod("Depdenency").entrySet()) { rdt.getMetrics().put(entry.getKey(), entry.getValue()); } return customCases.getTrackDependency(rdt); }
private void sendHTTPTelemetry(MethodData methodData, Throwable throwable) { if (methodData.arguments != null && methodData.arguments.length == 1) { String url = methodData.arguments[0].toString(); long durationInMilliSeconds = nanoToMilliseconds(methodData.interval); Duration duration = new Duration(durationInMilliSeconds); InternalLogger.INSTANCE.trace("Sending HTTP RDD event, URL: '%s', duration=%s ms", url, durationInMilliSeconds); RemoteDependencyTelemetry telemetry = new RemoteDependencyTelemetry(url, null, duration, throwable == null); telemetry.setDependencyKind(DependencyKind.Http); Date dependencyStartDate = new Date(System.currentTimeMillis() - durationInMilliSeconds); telemetry.setTimestamp(dependencyStartDate); telemetryClient.trackDependency(telemetry); if (throwable != null) { ExceptionTelemetry exceptionTelemetry = new ExceptionTelemetry(throwable); telemetryClient.track(exceptionTelemetry); } } }
private void sendInstrumentationTelemetry(MethodData methodData, Throwable throwable) { long durationInMilliSeconds = nanoToMilliseconds(methodData.interval); RemoteDependencyTelemetry telemetry = new RemoteDependencyTelemetry(methodData.name, null, new Duration(durationInMilliSeconds), throwable == null); telemetry.setType(methodData.type); Date dependencyStartDate = new Date(System.currentTimeMillis() - durationInMilliSeconds); telemetry.setTimestamp(dependencyStartDate); InternalLogger.INSTANCE.trace("Sending RDD event for '%s'", methodData.name); telemetryClient.track(telemetry); if (throwable != null) { ExceptionTelemetry exceptionTelemetry = new ExceptionTelemetry(throwable); telemetryClient.track(exceptionTelemetry); } }
@Test public void getAndSetMinDoNotThrow() { RemoteDependencyTelemetry telemetry = new RemoteDependencyTelemetry("MockName"); telemetry.setMin(new Double(1)); telemetry.getMin(); }
@Test public void getAndSetCountDoNotThrow() { RemoteDependencyTelemetry telemetry = new RemoteDependencyTelemetry("MockName"); telemetry.setCount(new Integer(1)); telemetry.getCount(); }
@Test public void getAndSetStdDevDoNotThrow() { RemoteDependencyTelemetry telemetry = new RemoteDependencyTelemetry("MockName"); telemetry.setStdDev(new Double(1)); telemetry.getStdDev(); }
@Test public void getAndSetMaxDoNotThrow() { RemoteDependencyTelemetry telemetry = new RemoteDependencyTelemetry("MockName"); telemetry.setMax(new Double(1)); telemetry.getMax(); }
@Override public void methodFinished(String classAndMethodNames, long deltaInNS, Object[] args, Throwable throwable) { long durationInMS = nanoToMilliseconds(deltaInNS); Duration duration = new Duration(durationInMS); Date dependencyStartTime = new Date(System.currentTimeMillis() - durationInMS); RemoteDependencyTelemetry telemetry = new RemoteDependencyTelemetry(classAndMethodNames, null, duration, throwable == null); telemetry.setTimestamp(dependencyStartTime); telemetry.setDependencyKind(DependencyKind.Other); if (args != null) { String argsAsString = new ArgsFormatter().format(args); telemetry.getContext().getProperties().put("Args", argsAsString); } InternalLogger.INSTANCE.trace("Sending RDD event for '%s', duration=%s ms", classAndMethodNames, durationInMS); telemetryClient.track(telemetry); if (throwable != null) { ExceptionTelemetry exceptionTelemetry = new ExceptionTelemetry(throwable); telemetryClient.track(exceptionTelemetry); } }
@Test public void getAndSetDependencySourceDoNotThrow() { RemoteDependencyTelemetry telemetry = new RemoteDependencyTelemetry("MockName"); telemetry.setDependencySource(DependencySourceType.Aic); telemetry.getDependencySource(); } }
@Test public void testDependencyKind() { RemoteDependencyTelemetry telemetry = new RemoteDependencyTelemetry("MockName"); telemetry.setDependencyKind(DependencyKind.Http); assertEquals(DependencyKind.Http, telemetry.getDependencyKind()); }
@Test public void testCommandName() { String commandName = "command"; RemoteDependencyTelemetry telemetry = new RemoteDependencyTelemetry(); telemetry.setCommandName(commandName); assertEquals(commandName, telemetry.getCommandName()); }
@Test public void testSuccess() { boolean success = true; RemoteDependencyTelemetry telemetry = new RemoteDependencyTelemetry(); telemetry.setSuccess(success); assertEquals(success, telemetry.getSuccess()); }
@Test public void testSetName() { RemoteDependencyTelemetry telemetry = new RemoteDependencyTelemetry("MockName"); telemetry.setName("MockName1"); assertEquals("MockName1", telemetry.getName()); }
@Test public void testCorrelatedTelemetryDoesNotGetSampledOut() { List<Telemetry> dependencyTelemetry = new ArrayList<Telemetry>(); Telemetry item = new RequestTelemetry(); item.getContext().getOperation().setId("abc"); Telemetry item2 = new RemoteDependencyTelemetry(); item2.getContext().getOperation().setId("abc"); dependencyTelemetry.add(item); dependencyTelemetry.add(item2); List<List<Telemetry>> telemetryCollectionList = new ArrayList<List<Telemetry>>(); telemetryCollectionList.add(dependencyTelemetry); List<Telemetry> itemsToSend = new ArrayList<Telemetry>(); TelemetryConfiguration configuration = createConfiguration(itemsToSend); TelemetryClient client = new TelemetryClient(configuration); testNoSampling(client, telemetryCollectionList, itemsToSend, null, null, 50.0); }
@Test public void testDuration() { Duration duration = new Duration(1234); RemoteDependencyTelemetry telemetry = new RemoteDependencyTelemetry(); telemetry.setDuration(duration); assertEquals(duration, telemetry.getDuration()); }
@Test public void testEmptyCtor() { RemoteDependencyTelemetry telemetry = new RemoteDependencyTelemetry(); assertNull(telemetry.getName()); assertNull(telemetry.getCount()); assertNull(telemetry.getMin()); assertNull(telemetry.getMax()); assertNull(telemetry.getStdDev()); assertEquals(DependencyKind.Other, telemetry.getDependencyKind()); assertEquals(DependencySourceType.Undefined, telemetry.getDependencySource()); assertTrue(telemetry.getProperties().isEmpty()); }
@Test public void testCtorWithNameParameter() { RemoteDependencyTelemetry telemetry = new RemoteDependencyTelemetry("MockName"); assertEquals("MockName", telemetry.getName()); assertNull(telemetry.getCount()); assertNull(telemetry.getMin()); assertNull(telemetry.getMax()); assertNull(telemetry.getStdDev()); assertEquals(DependencyKind.Other, telemetry.getDependencyKind()); assertEquals(DependencySourceType.Undefined, telemetry.getDependencySource()); assertTrue(telemetry.getProperties().isEmpty()); }
@Test public void testCtorWithAllParameter() { String dependencyName = "DepName"; String commandName = "Query1"; Duration duration = new Duration(12345); boolean success = false; RemoteDependencyTelemetry telemetry = new RemoteDependencyTelemetry(dependencyName, commandName, duration, success); assertEquals(dependencyName, telemetry.getName()); assertEquals(commandName, telemetry.getCommandName()); assertEquals(duration, telemetry.getDuration()); assertEquals(success, telemetry.getSuccess()); assertNull(telemetry.getCount()); assertNull(telemetry.getMin()); assertNull(telemetry.getMax()); assertNull(telemetry.getStdDev()); assertEquals(DependencySourceType.Undefined, telemetry.getDependencySource()); assertTrue(telemetry.getProperties().isEmpty()); }