use of io.opencensus.trace.export.SpanData in project ignite by apache.
the class OpenCensusTracingSpiTest method testCustomEventContainsMessageClassTag.
/**
* Ensure that root discovery.custom.event have message.class with corresponding value.
*
* @throws Exception If failed.
*/
@Test
public void testCustomEventContainsMessageClassTag() throws Exception {
IgniteEx ignite = grid(0);
startGrid(GRID_CNT).createCache("New cache");
handler().flush();
// Only root discovery.custom.event spans have message.class tag.
List<SpanData> rootCustomEvtSpans = handler().allSpans().filter(spanData -> DISCOVERY_CUSTOM_EVENT.spanName().equals(spanData.getName()) && spanData.getParentSpanId() == null).collect(Collectors.toList());
// Check that there's at least one discovery.custom.event span with tag "message.class"
// and value "CacheAffinityChangeMessage"
assertTrue(rootCustomEvtSpans.stream().anyMatch(span -> "CacheAffinityChangeMessage".equals(attributeValueToString(span.getAttributes().getAttributeMap().get(SpanTags.MESSAGE_CLASS)))));
}
use of io.opencensus.trace.export.SpanData in project ignite by apache.
the class OpenCensusTxTracingConfigurationTest method testTxTraceIncludesCommunicationTracesInCaseOfCommunicationScopeInTxIncludedScopes.
/**
* Ensure that TX trace does include COMMUNICATION sub-traces in case of COMMUNICATION scope within the set
* of included scopes of the corresponding TX tracing configuration.
*
* @throws Exception If Failed.
*/
@Test
public void testTxTraceIncludesCommunicationTracesInCaseOfCommunicationScopeInTxIncludedScopes() throws Exception {
IgniteEx client = startGrid("client");
client.tracingConfiguration().set(new TracingConfigurationCoordinates.Builder(TX).build(), new TracingConfigurationParameters.Builder().withSamplingRate(SAMPLING_RATE_ALWAYS).withIncludedScopes(Collections.singleton(Scope.COMMUNICATION)).build());
Transaction tx = client.transactions().txStart(PESSIMISTIC, SERIALIZABLE);
client.cache(DEFAULT_CACHE_NAME).put(1, 1);
tx.commit();
handler().flush();
SpanId parentSpanId = handler().allSpans().filter(span -> SpanType.TX_NEAR_PREPARE.spanName().equals(span.getName())).collect(Collectors.toList()).get(0).getContext().getSpanId();
java.util.List<SpanData> gotSpans = handler().allSpans().filter(span -> parentSpanId.equals(span.getParentSpanId()) && SpanType.COMMUNICATION_SOCKET_WRITE.spanName().equals(span.getName())).collect(Collectors.toList());
assertFalse(gotSpans.isEmpty());
}
use of io.opencensus.trace.export.SpanData in project ignite by apache.
the class OpenCensusTxTracingConfigurationTest method testThatLabelSpecificConfigurationIsUsedWheneverPossible.
/**
* Ensure that label specific configuration is used instead of scope specific if it's possible.
*
* @throws Exception If Failed.
*/
@Test
public void testThatLabelSpecificConfigurationIsUsedWheneverPossible() throws Exception {
IgniteEx client = startGrid("client");
final String txLbToBeTraced = "label1";
final String txLbNotToBeTraced = "label2";
client.tracingConfiguration().set(new TracingConfigurationCoordinates.Builder(TX).withLabel(txLbToBeTraced).build(), new TracingConfigurationParameters.Builder().withSamplingRate(SAMPLING_RATE_ALWAYS).build());
client.transactions().withLabel(txLbToBeTraced).txStart(PESSIMISTIC, SERIALIZABLE).commit();
handler().flush();
java.util.List<SpanData> gotSpans = handler().allSpans().filter(span -> SpanType.TX.spanName().equals(span.getName())).collect(Collectors.toList());
assertEquals(1, gotSpans.size());
// Not to be traced, cause there's neither tracing configuration with given label
// nor scope specific tx configuration. In that case default tx tracing configuration will be used that
// actually disables tracing.
client.transactions().withLabel(txLbNotToBeTraced).txStart(PESSIMISTIC, SERIALIZABLE).commit();
handler().flush();
gotSpans = handler().allSpans().filter(span -> SpanType.TX.spanName().equals(span.getName())).collect(Collectors.toList());
// Still only one, previously detected, span is expected.
assertEquals(1, gotSpans.size());
}
use of io.opencensus.trace.export.SpanData in project ignite by apache.
the class OpenCensusTxTracingConfigurationTest method testThatDefaultConfigurationIsUsedIfScopeSpecificNotFoundAndThatByDefaultTxTracingIsDisabled.
/**
* Ensure that default scope specific configuration is used if there's no neither label specif not custom scope specific ones.
* Also ensure that by default TX tracing is disabled.
*
* @throws Exception If Failed.
*/
@Test
public void testThatDefaultConfigurationIsUsedIfScopeSpecificNotFoundAndThatByDefaultTxTracingIsDisabled() throws Exception {
IgniteEx client = startGrid("client");
client.transactions().withLabel("label1").txStart(PESSIMISTIC, SERIALIZABLE).commit();
handler().flush();
java.util.List<SpanData> gotSpans = handler().allSpans().filter(span -> SpanType.TX.spanName().equals(span.getName())).collect(Collectors.toList());
assertTrue(gotSpans.isEmpty());
}
use of io.opencensus.trace.export.SpanData in project ignite by apache.
the class OpenCensusTxTracingConfigurationTest method testTxConfigurationSamplingRateNeverPreventsTxTracing.
/**
* Ensure that in case of sampling rate equals to 0.0 (Never) no transactions are traced.
*
* @throws Exception If Failed.
*/
@Test
public void testTxConfigurationSamplingRateNeverPreventsTxTracing() throws Exception {
IgniteEx client = startGrid("client");
client.tracingConfiguration().set(new TracingConfigurationCoordinates.Builder(TX).build(), new TracingConfigurationParameters.Builder().withSamplingRate(SAMPLING_RATE_NEVER).build());
client.transactions().txStart(PESSIMISTIC, SERIALIZABLE).commit();
handler().flush();
Set<String> unexpectedTxSpanNames = Arrays.stream(SpanType.values()).filter(spanType -> spanType.scope() == TX).map(SpanType::spanName).collect(Collectors.toSet());
java.util.List<SpanData> gotSpans = handler().allSpans().filter(span -> unexpectedTxSpanNames.contains(span.getName())).collect(Collectors.toList());
assertTrue(gotSpans.isEmpty());
}
Aggregations