/** * 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); }
@Override public Telemetry apply(BaseTelemetry bt) { Preconditions.checkNotNull(bt); RemoteDependencyTelemetry t = (RemoteDependencyTelemetry) bt; final Dependency.Builder db = Dependency.newBuilder() .setVer(t.getVer()) .setSuccess(BoolValue.of(t.getSuccess())) .setDuration(transformDuration(t.getDuration())); if (t.getProperties() != null) db.putAllProperties(t.getProperties()); if (t.getName() != null) db.setName(t.getName()); if (t.getId() != null) db.setId(t.getId()); if (t.getResultCode() != null) db.setResultCode(t.getResultCode()); if (t.getCommandName() != null) db.setData(t.getCommandName()); if (t.getType() != null) db.setType(t.getType()); if (t.getTarget() != null) db.setTarget(t.getTarget()); if (t.getMetrics() != null) db.putAllMeasurements(t.getMetrics()); return telemetryBuilderWithStandardFields(t).setDependency(db).build(); } });
RemoteDependencyTelemetry telemetry = new RemoteDependencyTelemetry(name, uri, new Duration(deltaInMS), (result < 400)); Date dependencyStartTime = new Date(System.currentTimeMillis() - deltaInMS); telemetry.setTimestamp(dependencyStartTime); telemetry.setId(correlationId); telemetry.setResultCode(Integer.toString(result)); telemetry.setType("Http (tracked component)"); telemetry.getContext().getProperties().put("URI", uri); telemetry.getContext().getProperties().put("Method", method); if (telemetry.getTarget() == null) { telemetry.setTarget(target); } else { telemetry.setTarget(telemetry.getTarget() + " | " + target);
@Test public void getAndSetDependencySourceDoNotThrow() { RemoteDependencyTelemetry telemetry = new RemoteDependencyTelemetry("MockName"); telemetry.setDependencySource(DependencySourceType.Aic); telemetry.getDependencySource(); } }
@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()); }
duration = new Duration(42L); success = true; RemoteDependencyTelemetry dt = new RemoteDependencyTelemetry(dependencyName, commandName, duration, success); dt.getContext().setInstrumentationKey(iKey); testCases.add(new Object[]{ "Dependency, simple", getTelemetryBuilder(RemoteDependencyTelemetry.ENVELOPE_NAME, iKey) .setDependency(Dependency.newBuilder() .setVer(dt.getVer()) .setData(commandName) .setName(dependencyName) String resultCode = "611"; String depType = "Fake"; dt = new RemoteDependencyTelemetry(dependencyName, commandName, duration, success); dt.setTarget(target); dt.setSamplingPercentage(Double.valueOf(samplingPercent)); dt.setResultCode(resultCode); dt.setType(depType); dt.getContext().setInstrumentationKey(iKey); dt.getProperties().putAll(props); dt.getMetrics().putAll(metrics); testCases.add(new Object[]{ "Dependency, dense with props & metrics", .setSamplingRate(DoubleValue.of(samplingPercent)) .setDependency(Dependency.newBuilder() .setVer(dt.getVer())
@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()); }
@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 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()); }
public void trackDependency(String dependencyName, String commandName, Duration duration, boolean success) { RemoteDependencyTelemetry remoteDependencyTelemetry = new RemoteDependencyTelemetry(dependencyName, commandName, duration, success); trackDependency(remoteDependencyTelemetry); }
@Test public void testDuration() { Duration duration = new Duration(1234); RemoteDependencyTelemetry telemetry = new RemoteDependencyTelemetry(); telemetry.setDuration(duration); assertEquals(duration, telemetry.getDuration()); }
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 testDependencyKind() { RemoteDependencyTelemetry telemetry = new RemoteDependencyTelemetry("MockName"); telemetry.setDependencyKind(DependencyKind.Http); assertEquals(DependencyKind.Http, telemetry.getDependencyKind()); }
@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(); }