Zipking will export all strings (#1197)

* Zipking will export all strings

* updating tests

* renaming tests, solving incorrect tests

* net.peer.port will be exported as well
This commit is contained in:
Eddy Nakamura 2020-08-28 15:20:17 -03:00 committed by GitHub
parent a09e1f8fa3
commit 465fc09320
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 24 additions and 21 deletions

View File

@ -208,17 +208,16 @@ namespace OpenTelemetry.Exporter.Zipkin.Implementation
{ {
state.ServiceNamespace = strVal; state.ServiceNamespace = strVal;
} }
else
{ PooledList<KeyValuePair<string, object>>.Add(ref state.Tags, new KeyValuePair<string, object>(key, strVal));
PooledList<KeyValuePair<string, object>>.Add(ref state.Tags, new KeyValuePair<string, object>(key, strVal));
}
}
else if (attribute.Value is int intVal && attribute.Key == SemanticConventions.AttributeNetPeerPort)
{
state.Port = intVal;
} }
else else
{ {
if (attribute.Value is int intVal && attribute.Key == SemanticConventions.AttributeNetPeerPort)
{
state.Port = intVal;
}
PooledList<KeyValuePair<string, object>>.Add(ref state.Tags, attribute); PooledList<KeyValuePair<string, object>>.Add(ref state.Tags, attribute);
} }

View File

@ -26,7 +26,7 @@ namespace OpenTelemetry.Exporter.Zipkin.Tests.Implementation
private static readonly ZipkinEndpoint DefaultZipkinEndpoint = new ZipkinEndpoint("TestService"); private static readonly ZipkinEndpoint DefaultZipkinEndpoint = new ZipkinEndpoint("TestService");
[Fact] [Fact]
public void ZipkinActivityConversion_ToZipkinSpan_AllPropertiesSet() public void ToZipkinSpan_AllPropertiesSet()
{ {
// Arrange // Arrange
var activity = ZipkinExporterTests.CreateTestActivity(); var activity = ZipkinExporterTests.CreateTestActivity();
@ -45,7 +45,7 @@ namespace OpenTelemetry.Exporter.Zipkin.Tests.Implementation
int counter = 0; int counter = 0;
var tagsArray = zipkinSpan.Tags.Value.ToArray(); var tagsArray = zipkinSpan.Tags.Value.ToArray();
foreach (var tags in activity.Tags) foreach (var tags in activity.TagObjects)
{ {
Assert.Equal(tagsArray[counter].Key, tags.Key); Assert.Equal(tagsArray[counter].Key, tags.Key);
Assert.Equal(tagsArray[counter++].Value, tags.Value); Assert.Equal(tagsArray[counter++].Value, tags.Value);
@ -59,7 +59,7 @@ namespace OpenTelemetry.Exporter.Zipkin.Tests.Implementation
} }
[Fact] [Fact]
public void ZipkinActivityConversion_ToZipkinSpan_NoEvents() public void ToZipkinSpan_NoEvents()
{ {
// Arrange // Arrange
var activity = ZipkinExporterTests.CreateTestActivity(addEvents: false); var activity = ZipkinExporterTests.CreateTestActivity(addEvents: false);
@ -75,7 +75,7 @@ namespace OpenTelemetry.Exporter.Zipkin.Tests.Implementation
int counter = 0; int counter = 0;
var tagsArray = zipkinSpan.Tags.Value.ToArray(); var tagsArray = zipkinSpan.Tags.Value.ToArray();
foreach (var tags in activity.Tags) foreach (var tags in activity.TagObjects)
{ {
Assert.Equal(tagsArray[counter].Key, tags.Key); Assert.Equal(tagsArray[counter].Key, tags.Key);
Assert.Equal(tagsArray[counter++].Value, tags.Value); Assert.Equal(tagsArray[counter++].Value, tags.Value);

View File

@ -26,7 +26,7 @@ namespace OpenTelemetry.Exporter.Zipkin.Tests.Implementation
private static readonly ZipkinEndpoint DefaultZipkinEndpoint = new ZipkinEndpoint("TestService"); private static readonly ZipkinEndpoint DefaultZipkinEndpoint = new ZipkinEndpoint("TestService");
[Fact] [Fact]
public void ZipkinSpanConverterTest_GenerateActivity_RemoteEndpointOmittedByDefault() public void GenerateActivity_RemoteEndpointOmittedByDefault()
{ {
// Arrange // Arrange
var activity = ZipkinExporterTests.CreateTestActivity(); var activity = ZipkinExporterTests.CreateTestActivity();
@ -34,11 +34,11 @@ namespace OpenTelemetry.Exporter.Zipkin.Tests.Implementation
// Act & Assert // Act & Assert
var zipkinSpan = ZipkinActivityConversionExtensions.ToZipkinSpan(activity, DefaultZipkinEndpoint); var zipkinSpan = ZipkinActivityConversionExtensions.ToZipkinSpan(activity, DefaultZipkinEndpoint);
Assert.Null(zipkinSpan.RemoteEndpoint); Assert.NotNull(zipkinSpan.RemoteEndpoint);
} }
[Fact] [Fact]
public void ZipkinSpanConverterTest_GenerateActivity_RemoteEndpointResolution() public void GenerateActivity_RemoteEndpointResolution()
{ {
// Arrange // Arrange
var activity = ZipkinExporterTests.CreateTestActivity( var activity = ZipkinExporterTests.CreateTestActivity(
@ -56,7 +56,7 @@ namespace OpenTelemetry.Exporter.Zipkin.Tests.Implementation
[Theory] [Theory]
[MemberData(nameof(RemoteEndpointPriorityTestCase.GetTestCases), MemberType = typeof(RemoteEndpointPriorityTestCase))] [MemberData(nameof(RemoteEndpointPriorityTestCase.GetTestCases), MemberType = typeof(RemoteEndpointPriorityTestCase))]
public void ZipkinSpanConverterTest_GenerateActivity_RemoteEndpointResolutionPriority(RemoteEndpointPriorityTestCase testCase) public void GenerateActivity_RemoteEndpointResolutionPriority(RemoteEndpointPriorityTestCase testCase)
{ {
// Arrange // Arrange
var activity = ZipkinExporterTests.CreateTestActivity(additionalAttributes: testCase.RemoteEndpointAttributes); var activity = ZipkinExporterTests.CreateTestActivity(additionalAttributes: testCase.RemoteEndpointAttributes);

View File

@ -84,14 +84,14 @@ namespace OpenTelemetry.Exporter.Zipkin.Tests
} }
[Fact] [Fact]
public void ZipkinExporter_BadArgs() public void BadArgs()
{ {
TracerProviderBuilder builder = null; TracerProviderBuilder builder = null;
Assert.Throws<ArgumentNullException>(() => builder.AddZipkinExporter()); Assert.Throws<ArgumentNullException>(() => builder.AddZipkinExporter());
} }
[Fact] [Fact]
public void ZipkinExporter_SuppresssesInstrumentation() public void SuppresssesInstrumentation()
{ {
const string ActivitySourceName = "zipkin.test"; const string ActivitySourceName = "zipkin.test";
Guid requestId = Guid.NewGuid(); Guid requestId = Guid.NewGuid();
@ -135,7 +135,7 @@ namespace OpenTelemetry.Exporter.Zipkin.Tests
[Theory] [Theory]
[InlineData(true)] [InlineData(true)]
[InlineData(false)] [InlineData(false)]
public void ZipkinExporterIntegrationTest(bool useShortTraceIds) public void IntegrationTest(bool useShortTraceIds)
{ {
Guid requestId = Guid.NewGuid(); Guid requestId = Guid.NewGuid();
@ -170,7 +170,7 @@ namespace OpenTelemetry.Exporter.Zipkin.Tests
var traceId = useShortTraceIds ? TraceId.Substring(TraceId.Length - 16, 16) : TraceId; var traceId = useShortTraceIds ? TraceId.Substring(TraceId.Length - 16, 16) : TraceId;
Assert.Equal( Assert.Equal(
$@"[{{""traceId"":""{traceId}"",""name"":""Name"",""parentId"":""{ZipkinActivityConversionExtensions.EncodeSpanId(activity.ParentSpanId)}"",""id"":""{ZipkinActivityConversionExtensions.EncodeSpanId(context.SpanId)}"",""kind"":""CLIENT"",""timestamp"":{timestamp},""duration"":60000000,""localEndpoint"":{{""serviceName"":""OpenTelemetry Exporter""{ipInformation}}},""annotations"":[{{""timestamp"":{eventTimestamp},""value"":""Event1""}},{{""timestamp"":{eventTimestamp},""value"":""Event2""}}],""tags"":{{""stringKey"":""value"",""longKey"":""1"",""longKey2"":""1"",""doubleKey"":""1"",""doubleKey2"":""1"",""longArrayKey"":""1,2"",""boolKey"":""True"",""library.name"":""CreateTestActivity""}}}}]", $@"[{{""traceId"":""{traceId}"",""name"":""Name"",""parentId"":""{ZipkinActivityConversionExtensions.EncodeSpanId(activity.ParentSpanId)}"",""id"":""{ZipkinActivityConversionExtensions.EncodeSpanId(context.SpanId)}"",""kind"":""CLIENT"",""timestamp"":{timestamp},""duration"":60000000,""localEndpoint"":{{""serviceName"":""OpenTelemetry Exporter""{ipInformation}}},""remoteEndpoint"":{{""serviceName"":""http://localhost:44312/""}},""annotations"":[{{""timestamp"":{eventTimestamp},""value"":""Event1""}},{{""timestamp"":{eventTimestamp},""value"":""Event2""}}],""tags"":{{""stringKey"":""value"",""longKey"":""1"",""longKey2"":""1"",""doubleKey"":""1"",""doubleKey2"":""1"",""longArrayKey"":""1,2"",""boolKey"":""True"",""http.host"":""http://localhost:44312/"",""library.name"":""CreateTestActivity""}}}}]",
Responses[requestId]); Responses[requestId]);
} }
@ -198,12 +198,16 @@ namespace OpenTelemetry.Exporter.Zipkin.Tests
{ "doubleKey2", 1F }, { "doubleKey2", 1F },
{ "longArrayKey", new long[] { 1, 2 } }, { "longArrayKey", new long[] { 1, 2 } },
{ "boolKey", true }, { "boolKey", true },
{ "http.host", "http://localhost:44312/" }, // simulating instrumentation tag adding http.host
}; };
if (additionalAttributes != null) if (additionalAttributes != null)
{ {
foreach (var attribute in additionalAttributes) foreach (var attribute in additionalAttributes)
{ {
attributes.Add(attribute.Key, attribute.Value); if (!attributes.ContainsKey(attribute.Key))
{
attributes.Add(attribute.Key, attribute.Value);
}
} }
} }