/** * Send the heartbeat item synchronously to application insights backend. */ private void send() { MetricTelemetry telemetry = gatherData(); telemetry.getContext().getOperation().setSyntheticSource(HEARTBEAT_SYNTHETIC_METRIC_NAME); telemetryClient.trackMetric(telemetry); InternalLogger.INSTANCE.trace("No of heartbeats sent, %s", ++heartbeatsSent); }
@Override public void report(TelemetryClient telemetryClient) { MetricTelemetry mt = new MetricTelemetry(METRIC_NAME, 0.0); mt.markAsCustomPerfCounter(); long[] threadIds = threadBean.findDeadlockedThreads(); if (threadIds != null && threadIds.length > 0) { ArrayList<Long> blockedThreads = new ArrayList<Long>(); StringBuilder sb = new StringBuilder(); for (long threadId : threadIds) { ThreadInfo threadInfo = threadBean.getThreadInfo(threadId); if (threadInfo == null) { continue; } setThreadInfoAndStack(sb, threadInfo); blockedThreads.add(threadId); } if (!blockedThreads.isEmpty()) { String uuid = LocalStringsUtils.generateRandomIntegerId(); mt.setValue((double)blockedThreads.size()); mt.getContext().getOperation().setId(uuid); TraceTelemetry trace = new TraceTelemetry(String.format("%s%s", "Suspected deadlocked threads: ", sb.toString())); trace.getContext().getOperation().setId(uuid); telemetryClient.track(trace); } } telemetryClient.track(mt); } private void setThreadInfoAndStack(StringBuilder sb, ThreadInfo ti) {
@Test public void sendAddsItemToBuffer() { final MetricTelemetry telemetry = new MetricTelemetry(); telemetry.getContext().setInstrumentationKey("fake-ikey"); channel.send(telemetry); verify(mockBuffer, times(1)).add(any(Telemetry.class)); }
mt.getContext().setInstrumentationKey(iKey); testCases.add(new Object[]{ "Metric measurement", final int count = 4; mt = new MetricTelemetry("TestAggregation", sum); mt.getContext().setInstrumentationKey(iKey); mt.setStandardDeviation(stdDev); mt.setMin(min); mt.getContext().setInstrumentationKey(iKey); testCases.add(new Object[]{ "Metric measurement with properties",