@Override public Summary getSummary() { Map<String, PerSpanNameSummary> ret = new HashMap<String, PerSpanNameSummary>(); synchronized (samples) { for (Map.Entry<String, PerSpanNameSamples> it : samples.entrySet()) { ret.put( it.getKey(), PerSpanNameSummary.create( it.getValue().getNumbersOfLatencySampledSpans(), it.getValue().getNumbersOfErrorSampledSpans())); } } return Summary.create(ret); }
spanNames.addAll(sampledSpanStoreSummary.getPerSpanNameSummary().keySet()); boolean zebraColor = true; for (String spanName : spanNames) { sampledSpanStoreSummary.getPerSpanNameSummary().get(spanName);
@Before public void setUp() { MockitoAnnotations.initMocks(this); Map<String, RunningSpanStore.PerSpanNameSummary> runningSummaryMap = new HashMap<>(); runningSummaryMap.put(ACTIVE_SPAN_NAME, RunningSpanStore.PerSpanNameSummary.create(3)); runningSummaryMap.put(ACTIVE_SAMPLED_SPAN_NAME, RunningSpanStore.PerSpanNameSummary.create(5)); runningSpanStoreSummary = RunningSpanStore.Summary.create(runningSummaryMap); Map<LatencyBucketBoundaries, Integer> numbersOfLatencySampledSpans = new HashMap<>(); numbersOfLatencySampledSpans.put(LatencyBucketBoundaries.MILLIx1_MILLIx10, 3); numbersOfLatencySampledSpans.put(LatencyBucketBoundaries.MICROSx10_MICROSx100, 7); Map<CanonicalCode, Integer> numbersOfErrorSampledSpans = new HashMap<>(); numbersOfErrorSampledSpans.put(CanonicalCode.CANCELLED, 2); numbersOfErrorSampledSpans.put(CanonicalCode.DEADLINE_EXCEEDED, 5); Map<String, SampledSpanStore.PerSpanNameSummary> sampledSummaryMap = new HashMap<>(); sampledSummaryMap.put( SAMPLED_SPAN_NAME, SampledSpanStore.PerSpanNameSummary.create( numbersOfLatencySampledSpans, numbersOfErrorSampledSpans)); sampledSummaryMap.put( ACTIVE_SAMPLED_SPAN_NAME, SampledSpanStore.PerSpanNameSummary.create( numbersOfLatencySampledSpans, numbersOfErrorSampledSpans)); sampledSpanStoreSummary = SampledSpanStore.Summary.create(sampledSummaryMap); }
@Test public void noopSampledSpanStore_RegisterUnregisterAndGetSummary() { // should return empty before register SampledSpanStore sampledSpanStore = ExportComponent.newNoopExportComponent().getSampledSpanStore(); SampledSpanStore.Summary summary = sampledSpanStore.getSummary(); assertThat(summary.getPerSpanNameSummary()).isEmpty(); // should return non-empty summaries with zero latency/error sampled spans after register sampledSpanStore.registerSpanNamesForCollection( Collections.unmodifiableList(Lists.newArrayList("TestSpan1", "TestSpan2", "TestSpan3"))); summary = sampledSpanStore.getSummary(); assertThat(summary.getPerSpanNameSummary()) .containsExactly( "TestSpan1", EMPTY_PER_SPAN_NAME_SUMMARY, "TestSpan2", EMPTY_PER_SPAN_NAME_SUMMARY, "TestSpan3", EMPTY_PER_SPAN_NAME_SUMMARY); // should unregister specific spanNames sampledSpanStore.unregisterSpanNamesForCollection( Collections.unmodifiableList(Lists.newArrayList("TestSpan1", "TestSpan3"))); summary = sampledSpanStore.getSummary(); assertThat(summary.getPerSpanNameSummary()) .containsExactly("TestSpan2", EMPTY_PER_SPAN_NAME_SUMMARY); }
@Override public Summary getSummary() { Map<String, PerSpanNameSummary> ret = new HashMap<String, PerSpanNameSummary>(); synchronized (samples) { for (Map.Entry<String, PerSpanNameSamples> it : samples.entrySet()) { ret.put( it.getKey(), PerSpanNameSummary.create( it.getValue().getNumbersOfLatencySampledSpans(), it.getValue().getNumbersOfErrorSampledSpans())); } } return Summary.create(ret); }
@Test public void addSpansWithRegisteredNamesInAllLatencyBuckets() { addSpanNameToAllLatencyBuckets(REGISTERED_SPAN_NAME); Map<String, PerSpanNameSummary> perSpanNameSummary = sampleStore.getSummary().getPerSpanNameSummary(); assertThat(perSpanNameSummary.size()).isEqualTo(1); Map<LatencyBucketBoundaries, Integer> latencyBucketsSummaries = perSpanNameSummary.get(REGISTERED_SPAN_NAME).getNumbersOfLatencySampledSpans(); assertThat(latencyBucketsSummaries.size()).isEqualTo(LatencyBucketBoundaries.values().length); for (Map.Entry<LatencyBucketBoundaries, Integer> it : latencyBucketsSummaries.entrySet()) { assertThat(it.getValue()).isEqualTo(2); } }
@Override public Summary getSummary() { Map<String, PerSpanNameSummary> result = Maps.newHashMap(); synchronized (registeredSpanNames) { for (String registeredSpanName : registeredSpanNames) { result.put(registeredSpanName, EMPTY_PER_SPAN_NAME_SUMMARY); } } return Summary.create(result); }
@Test public void addSpansWithRegisteredNamesInAllErrorBuckets() { addSpanNameToAllErrorBuckets(REGISTERED_SPAN_NAME); Map<String, PerSpanNameSummary> perSpanNameSummary = sampleStore.getSummary().getPerSpanNameSummary(); assertThat(perSpanNameSummary.size()).isEqualTo(1); Map<CanonicalCode, Integer> errorBucketsSummaries = perSpanNameSummary.get(REGISTERED_SPAN_NAME).getNumbersOfErrorSampledSpans(); assertThat(errorBucketsSummaries.size()).isEqualTo(CanonicalCode.values().length - 1); for (Map.Entry<CanonicalCode, Integer> it : errorBucketsSummaries.entrySet()) { assertThat(it.getValue()).isEqualTo(2); } }
@Test public void addSpansWithoutRegisteredNamesInAllErrorBuckets() { addSpanNameToAllErrorBuckets(NOT_REGISTERED_SPAN_NAME); Map<String, PerSpanNameSummary> perSpanNameSummary = sampleStore.getSummary().getPerSpanNameSummary(); assertThat(perSpanNameSummary.size()).isEqualTo(1); assertThat(perSpanNameSummary.containsKey(NOT_REGISTERED_SPAN_NAME)).isFalse(); }
@Test public void addSpansWithoutRegisteredNamesInAllLatencyBuckets() { addSpanNameToAllLatencyBuckets(NOT_REGISTERED_SPAN_NAME); Map<String, PerSpanNameSummary> perSpanNameSummary = sampleStore.getSummary().getPerSpanNameSummary(); assertThat(perSpanNameSummary.size()).isEqualTo(1); assertThat(perSpanNameSummary.containsKey(NOT_REGISTERED_SPAN_NAME)).isFalse(); }
@Override public Summary getSummary() { Map<String, PerSpanNameSummary> result = new HashMap<String, PerSpanNameSummary>(); synchronized (registeredSpanNames) { for (String registeredSpanName : registeredSpanNames) { result.put(registeredSpanName, EMPTY_PER_SPAN_NAME_SUMMARY); } } return Summary.create(result); }
private void getMethodsShouldReturnEmpty() { // get methods always return empty collections. assertThat(sampledSpanStoreImpl.getSummary().getPerSpanNameSummary()).isEmpty(); assertThat(sampledSpanStoreImpl.getRegisteredSpanNamesForCollection()).isEmpty(); assertThat(sampledSpanStoreImpl.getErrorSampledSpans(errorFilter)).isEmpty(); assertThat(sampledSpanStoreImpl.getLatencySampledSpans(latencyFilter)).isEmpty(); }