protected void send(TelemetryClient telemetryClient, double value, String key) { // Using the metric to avoid unneeded allocations telemetry.setName(key); telemetry.setValue(value); telemetryClient.track(telemetry); } }
/** * Creates and returns the heartbeat telemetry. * @return Metric Telemetry which represent heartbeat. */ private MetricTelemetry gatherData() { MetricTelemetry heartbeat = new MetricTelemetry(HEARTBEAT_SYNTHETIC_METRIC_NAME, 0.0); Map<String, String> property = heartbeat.getProperties(); for (Map.Entry<String, HeartBeatPropertyPayload> entry : heartbeatProperties.entrySet()) { property.put(entry.getKey(), entry.getValue().getPayloadValue()); double currentValue = heartbeat.getValue(); currentValue += entry.getValue().isHealthy() ? 0 : 1; heartbeat.setValue(currentValue); } return heartbeat; }
public Runnable getTrackMetric_FullMeasurement() { final double value = 789.0123; final int count = 1; MetricTelemetry mt = new MetricTelemetry(); mt.setName("AiTestMetric_FullMeasurement"); mt.setValue(value); mt.setCount(count); for (Entry<String, String> entry : getPropertyMapForMethod("Metric_Mea").entrySet()) { mt.getProperties().put(entry.getKey(), entry.getValue()); } return customCases.getTrackMetric(mt); }
public Runnable getTrackMetric_FullAggregate() { final double value = (123.4 + 567.8); final int count = 2; final double min = 123.4; final double max = 567.8; final double avg = value/count; final double stdDev = Math.sqrt(((123.4-avg)*(123.4-avg) + (567.8-avg)*(567.8-avg))/count); MetricTelemetry mt = new MetricTelemetry(); mt.setName("AiTestMetric_FullAggregate"); mt.setValue(value); mt.setCount(count); mt.setMin(min); mt.setMax(max); mt.setStandardDeviation(stdDev); for (Entry<String, String> entry : getPropertyMapForMethod("Metric_Agg").entrySet()) { mt.getProperties().put(entry.getKey(), entry.getValue()); } return customCases.getTrackMetric(mt); }
@Override protected void send(TelemetryClient telemetryClient, String displayName, double value) { InternalLogger.INSTANCE.trace("Metric JMX: %s, %s", displayName, value); MetricTelemetry telemetry = new MetricTelemetry(); telemetry.markAsCustomPerfCounter(); telemetry.setName(displayName); telemetry.setValue(value); telemetry.getProperties().put("CustomPerfCounter", "true"); telemetryClient.track(telemetry); } }
@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 testSetValue() { MetricTelemetry telemetry = new MetricTelemetry("MockName", 120.1); telemetry.setValue(240.0); assertEquals("MockName", telemetry.getName()); assertEquals(240.0, telemetry.getValue(), Math.ulp(240.0)); }