@Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { try { if ("get".equals(method.getName())) { ServiceLatencyProvider latencyProvider = new ServiceLatencyProvider( AWSServiceMetrics.HttpClientGetConnectionTime); try { return method.invoke(orig, args); } finally { AwsSdkMetrics.getServiceMetricCollector() .collectLatency(latencyProvider.endTiming()); } } return method.invoke(orig, args); } catch (InvocationTargetException e) { log.debug("", e); throw e.getCause(); } } }
@Override public String toString() { return String.format( "providerId=%s, serviceMetricType=%s, startNano=%d, endNano=%d", getProviderId(), serviceMetricType, startNano, endNano); } }
@Override public void collectLatency(ServiceLatencyProvider provider) { final ServiceMetricType type = provider.getServiceMetricType(); final Set<MetricType> metrics = AwsSdkMetrics.getPredefinedMetrics(); if (metrics.contains(type)) { final Dimension dim = new Dimension() .withName(Dimensions.MetricType.name()) .withValue(type.name()); final MetricDatum datum = new MetricDatum() .withMetricName(type.getServiceName()) .withDimensions(dim) .withUnit(StandardUnit.Milliseconds) .withValue(provider.getDurationMilli()); safeAddMetricsToQueue(datum); } }
@Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { try { if ("get".equals(method.getName())) { ServiceLatencyProvider latencyProvider = new ServiceLatencyProvider( AWSServiceMetrics.HttpClientGetConnectionTime); try { return method.invoke(orig, args); } finally { AwsSdkMetrics.getServiceMetricCollector() .collectLatency(latencyProvider.endTiming()); } } return method.invoke(orig, args); } catch (InvocationTargetException e) { log.debug("", e); throw e.getCause(); } } }
@Override public String toString() { return String.format( "providerId=%s, serviceMetricType=%s, startNano=%d, endNano=%d", getProviderId(), serviceMetricType, startNano, endNano); } }
@Override public void collectLatency(ServiceLatencyProvider provider) { if (provider.getServiceMetricType() == AWSServiceMetrics.HttpClientGetConnectionTime) { long nanos = (long) (provider.getDurationMilli() * 1e6); clientGetConnectionTime.record(nanos, TimeUnit.NANOSECONDS); } } }
@Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { try { if ("getConnection".equals(method.getName())) { ServiceLatencyProvider latencyProvider = new ServiceLatencyProvider( AWSServiceMetrics.HttpClientGetConnectionTime); try { return method.invoke(orig, args); } finally { AwsSdkMetrics.getServiceMetricCollector() .collectLatency(latencyProvider.endTiming()); } } return method.invoke(orig, args); } catch (InvocationTargetException e) { log.debug("", e); throw e.getCause(); } } }
@Override public String toString() { return String.format( "providerId=%s, serviceMetricType=%s, startNano=%d, endNano=%d", getProviderId(), serviceMetricType, startNano, endNano); } }
@Override public void collectLatency(ServiceLatencyProvider provider) { if (provider.getServiceMetricType() == AWSServiceMetrics.HttpClientGetConnectionTime) { long nanos = (long) (provider.getDurationMilli() * 1e6); clientGetConnectionTime.record(nanos, TimeUnit.NANOSECONDS); } } }
@Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { try { if ("getConnection".equals(method.getName())) { ServiceLatencyProvider latencyProvider = new ServiceLatencyProvider( AWSServiceMetrics.HttpClientGetConnectionTime); try { return method.invoke(orig, args); } finally { AwsSdkMetrics.getServiceMetricCollector() .collectLatency(latencyProvider.endTiming()); } } return method.invoke(orig, args); } catch (InvocationTargetException e) { log.debug("", e); throw e.getCause(); } } }
@Override public String toString() { return String.format( "providerId=%s, serviceMetricType=%s, startNano=%d, endNano=%d", getProviderId(), serviceMetricType, startNano, endNano); } }
@Override public void collectLatency(ServiceLatencyProvider provider) { final ServiceMetricType type = provider.getServiceMetricType(); final Set<MetricType> metrics = AwsSdkMetrics.getPredefinedMetrics(); if (metrics.contains(type)) { final Dimension dim = new Dimension() .withName(Dimensions.MetricType.name()) .withValue(type.name()); final MetricDatum datum = new MetricDatum() .withMetricName(type.getServiceName()) .withDimensions(dim) .withUnit(StandardUnit.Milliseconds) .withValue(provider.getDurationMilli()); safeAddMetricsToQueue(datum); } }
@Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { try { if ("get".equals(method.getName())) { ServiceLatencyProvider latencyProvider = new ServiceLatencyProvider( AWSServiceMetrics.HttpClientGetConnectionTime); try { return method.invoke(orig, args); } finally { AwsSdkMetrics.getServiceMetricCollector() .collectLatency(latencyProvider.endTiming()); } } return method.invoke(orig, args); } catch (InvocationTargetException e) { log.debug("", e); throw e.getCause(); } } }
@Override public String toString() { return String.format( "providerId=%s, serviceMetricType=%s, startNano=%d, endNano=%d", getProviderId(), serviceMetricType, startNano, endNano); } }
@Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { try { if ("getConnection".equals(method.getName())) { ServiceLatencyProvider latencyProvider = new ServiceLatencyProvider( AWSServiceMetrics.HttpClientGetConnectionTime); try { return method.invoke(orig, args); } finally { AwsSdkMetrics.getServiceMetricCollector() .collectLatency(latencyProvider.endTiming()); } } return method.invoke(orig, args); } catch (InvocationTargetException e) { log.debug("", e); throw e.getCause(); } } }
@Override public String toString() { return String.format( "providerId=%s, serviceMetricType=%s, startNano=%d, endNano=%d", getProviderId(), serviceMetricType, startNano, endNano); } }