Skip to content

Commit 3552149

Browse files
vandonrbouwkast
andauthored
Reapply "Add Google Protobuf Instrumentation" (#6647)
## Summary of changes same as #6166 except with: - fixes by @bouwkast from #6640 - gave up on generating the proto object file on the fly - fixed a couple inconsistency issues I discovered when system-testing vs the Java instrumentation (depth calculation was one-off, int value of types were not in sync, and we were not using the full name for references) --------- Co-authored-by: Steven Bouwkamp <steven.bouwkamp@datadoghq.com>
1 parent 889915f commit 3552149

File tree

68 files changed

+4888
-553
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+4888
-553
lines changed

Datadog.Trace.OSX.slnf

+1
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@
102102
"tracer\\test\\test-applications\\integrations\\Samples.Elasticsearch.V7\\Samples.Elasticsearch.V7.csproj",
103103
"tracer\\test\\test-applications\\integrations\\Samples.Elasticsearch\\Samples.Elasticsearch.csproj",
104104
"tracer\\test\\test-applications\\integrations\\Samples.FakeDbCommand\\Samples.FakeDbCommand.csproj",
105+
"tracer\\test\\test-applications\\integrations\\Samples.GoogleProtobuf\\Samples.GoogleProtobuf.csproj",
105106
"tracer\\test\\test-applications\\integrations\\Samples.GraphQL3\\Samples.GraphQL3.csproj",
106107
"tracer\\test\\test-applications\\integrations\\Samples.GraphQL4\\Samples.GraphQL4.csproj",
107108
"tracer\\test\\test-applications\\integrations\\Samples.GraphQL7\\Samples.GraphQL7.csproj",

Datadog.Trace.Samples.g.sln

+7
Original file line numberDiff line numberDiff line change
@@ -441,6 +441,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.XUnitTestsRetriesV3
441441
EndProject
442442
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.AWS.S3", "tracer\test\test-applications\integrations\Samples.AWS.S3\Samples.AWS.S3.csproj", "{0C0578CB-3B67-4F95-8547-206CD2A560CD}"
443443
EndProject
444+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.GoogleProtobuf", "tracer\test\test-applications\integrations\Samples.GoogleProtobuf\Samples.GoogleProtobuf.csproj", "{EF8C4CCE-E79C-4D78-BF31-222A11E198B9}"
445+
EndProject
444446
Global
445447
GlobalSection(SolutionConfigurationPlatforms) = preSolution
446448
Debug|Any CPU = Debug|Any CPU
@@ -1063,6 +1065,10 @@ Global
10631065
{0C0578CB-3B67-4F95-8547-206CD2A560CD}.Debug|Any CPU.Build.0 = Debug|Any CPU
10641066
{0C0578CB-3B67-4F95-8547-206CD2A560CD}.Release|Any CPU.ActiveCfg = Release|Any CPU
10651067
{0C0578CB-3B67-4F95-8547-206CD2A560CD}.Release|Any CPU.Build.0 = Release|Any CPU
1068+
{EF8C4CCE-E79C-4D78-BF31-222A11E198B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
1069+
{EF8C4CCE-E79C-4D78-BF31-222A11E198B9}.Debug|Any CPU.Build.0 = Debug|Any CPU
1070+
{EF8C4CCE-E79C-4D78-BF31-222A11E198B9}.Release|Any CPU.ActiveCfg = Release|Any CPU
1071+
{EF8C4CCE-E79C-4D78-BF31-222A11E198B9}.Release|Any CPU.Build.0 = Release|Any CPU
10661072
EndGlobalSection
10671073
GlobalSection(NestedProjects) = preSolution
10681074
{9518425A-36A5-4B8F-B0B8-6137DB88441D} = {8CEC2042-F11C-49F5-A674-2355793B600A}
@@ -1239,5 +1245,6 @@ Global
12391245
{E5BF2436-0BE7-4096-9F25-5118916F4BE4} = {BAF8F246-3645-42AD-B1D0-0F7EAFBAB34A}
12401246
{E2EDDD17-B5E6-4240-9EF8-34F2D274AA19} = {BAF8F246-3645-42AD-B1D0-0F7EAFBAB34A}
12411247
{0C0578CB-3B67-4F95-8547-206CD2A560CD} = {BAF8F246-3645-42AD-B1D0-0F7EAFBAB34A}
1248+
{EF8C4CCE-E79C-4D78-BF31-222A11E198B9} = {BAF8F246-3645-42AD-B1D0-0F7EAFBAB34A}
12421249
EndGlobalSection
12431250
EndGlobal

Datadog.Trace.sln

+8
Original file line numberDiff line numberDiff line change
@@ -613,6 +613,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.XUnitTestsRetriesV3
613613
EndProject
614614
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.AWS.S3", "tracer\test\test-applications\integrations\Samples.AWS.S3\Samples.AWS.S3.csproj", "{0C0578CB-3B67-4F95-8547-206CD2A560CD}"
615615
EndProject
616+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples.GoogleProtobuf", "tracer\test\test-applications\integrations\Samples.GoogleProtobuf\Samples.GoogleProtobuf.csproj", "{EF8C4CCE-E79C-4D78-BF31-222A11E198B9}"
617+
EndProject
616618
Global
617619
GlobalSection(SolutionConfigurationPlatforms) = preSolution
618620
Debug|Any CPU = Debug|Any CPU
@@ -1477,6 +1479,10 @@ Global
14771479
{0C0578CB-3B67-4F95-8547-206CD2A560CD}.Debug|Any CPU.Build.0 = Debug|Any CPU
14781480
{0C0578CB-3B67-4F95-8547-206CD2A560CD}.Release|Any CPU.ActiveCfg = Release|Any CPU
14791481
{0C0578CB-3B67-4F95-8547-206CD2A560CD}.Release|Any CPU.Build.0 = Release|Any CPU
1482+
{EF8C4CCE-E79C-4D78-BF31-222A11E198B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
1483+
{EF8C4CCE-E79C-4D78-BF31-222A11E198B9}.Debug|Any CPU.Build.0 = Debug|Any CPU
1484+
{EF8C4CCE-E79C-4D78-BF31-222A11E198B9}.Release|Any CPU.ActiveCfg = Release|Any CPU
1485+
{EF8C4CCE-E79C-4D78-BF31-222A11E198B9}.Release|Any CPU.Build.0 = Release|Any CPU
14801486
EndGlobalSection
14811487
GlobalSection(SolutionProperties) = preSolution
14821488
HideSolutionNode = FALSE
@@ -1717,6 +1723,7 @@ Global
17171723
{E5BF2436-0BE7-4096-9F25-5118916F4BE4} = {BAF8F246-3645-42AD-B1D0-0F7EAFBAB34A}
17181724
{E2EDDD17-B5E6-4240-9EF8-34F2D274AA19} = {BAF8F246-3645-42AD-B1D0-0F7EAFBAB34A}
17191725
{0C0578CB-3B67-4F95-8547-206CD2A560CD} = {BAF8F246-3645-42AD-B1D0-0F7EAFBAB34A}
1726+
{EF8C4CCE-E79C-4D78-BF31-222A11E198B9} = {BAF8F246-3645-42AD-B1D0-0F7EAFBAB34A}
17201727
EndGlobalSection
17211728
GlobalSection(ExtensibilityGlobals) = postSolution
17221729
SolutionGuid = {160A1D00-1F5B-40F8-A155-621B4459D78F}
@@ -1864,6 +1871,7 @@ Global
18641871
tracer\test\test-applications\Samples.Shared\Samples.Shared.projitems*{e961d189-3ef9-4d79-95a1-78d825b73b01}*SharedItemsImports = 5
18651872
tracer\test\test-applications\Samples.Shared\Samples.Shared.projitems*{eea89acd-cfbb-4f60-a150-74f0a84df028}*SharedItemsImports = 5
18661873
tracer\test\test-applications\Samples.Shared\Samples.Shared.projitems*{ef718502-7760-45b5-a563-5f1b22a6b840}*SharedItemsImports = 5
1874+
tracer\test\test-applications\Samples.Shared\Samples.Shared.projitems*{ef8c4cce-e79c-4d78-bf31-222a11e198b9}*SharedItemsImports = 5
18671875
tracer\test\test-applications\Samples.Shared\Samples.Shared.projitems*{f19b5109-36ac-4a64-afe6-faf9e831c528}*SharedItemsImports = 5
18681876
tracer\test\test-applications\Samples.Shared\Samples.Shared.projitems*{f24eb026-65fb-4247-abf8-942b11adab64}*SharedItemsImports = 5
18691877
tracer\test\test-applications\Samples.Shared\Samples.Shared.projitems*{f47f206e-4cca-4ad0-aeba-fd9f491e05ec}*SharedItemsImports = 5

docs/development/DuckTyping.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,7 @@ DuckType.CreateTypeResult proxyResult = DuckType.GetOrCreateProxyType(proxyTarge
315315
if (proxyResult.Success)
316316
{
317317
// Pass in null, as there's no "instance" to duck type here
318-
return proxyResult.CreateInstance(null);
318+
return proxyResult.CreateInstance(null!);
319319
}
320320
else
321321
{
@@ -355,7 +355,7 @@ DuckType.CreateTypeResult proxyResult = DuckType.GetOrCreateProxyType(proxyType,
355355
if (proxyResult.Success)
356356
{
357357
// Pass in null, as there's no "instance" to duck type here, to create an instance of our proxy
358-
var proxy = (IObjectFactoryProxy)proxyResult.CreateInstance(null);
358+
var proxy = (IObjectFactoryProxy)proxyResult.CreateInstance(null!);
359359

360360
// invoke methods on the proxy
361361
object obj = proxy.CreateObject();

tracer/build/PackageVersionsGeneratorDefinitions.json

+10
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,16 @@
270270
"ExcludeTargetFrameworks": ["netcoreapp2.1", "netcoreapp3.0"]
271271
}]
272272
},
273+
{
274+
"IntegrationName": "Protobuf",
275+
"SampleProjectName": "Samples.GoogleProtobuf",
276+
"NugetPackageSearchName": "Google.Protobuf",
277+
"MinVersion": "3.0.0",
278+
"MaxVersionExclusive": "4.0.0",
279+
"SpecificVersions": [
280+
"3.*.*"
281+
]
282+
},
273283
{
274284
"IntegrationName": "RabbitMQ",
275285
"SampleProjectName": "Samples.RabbitMQ",

tracer/build/PackageVersionsLatestMajors.g.props

+54
Original file line numberDiff line numberDiff line change
@@ -1188,6 +1188,60 @@ NOTE: This code was generated by the GeneratePackageVersions tool. To safely
11881188
<RequiresDockerDependency>All</RequiresDockerDependency>
11891189
<SampleName>Samples.Npgsql</SampleName>
11901190
</PackageVersionSample>
1191+
<PackageVersionSample Include="test\test-applications\integrations\Samples.GoogleProtobuf\Samples.GoogleProtobuf.csproj">
1192+
<Properties>ApiVersion=3.29.3;RestoreRecursive=false;BuildProjectReferences=false</Properties>
1193+
<TargetFramework>net462</TargetFramework>
1194+
<RequiresDockerDependency>None</RequiresDockerDependency>
1195+
<SampleName>Samples.GoogleProtobuf</SampleName>
1196+
</PackageVersionSample>
1197+
<PackageVersionSample Include="test\test-applications\integrations\Samples.GoogleProtobuf\Samples.GoogleProtobuf.csproj">
1198+
<Properties>ApiVersion=3.29.3;RestoreRecursive=false;BuildProjectReferences=false</Properties>
1199+
<TargetFramework>netcoreapp2.1</TargetFramework>
1200+
<RequiresDockerDependency>None</RequiresDockerDependency>
1201+
<SampleName>Samples.GoogleProtobuf</SampleName>
1202+
</PackageVersionSample>
1203+
<PackageVersionSample Include="test\test-applications\integrations\Samples.GoogleProtobuf\Samples.GoogleProtobuf.csproj">
1204+
<Properties>ApiVersion=3.29.3;RestoreRecursive=false;BuildProjectReferences=false</Properties>
1205+
<TargetFramework>netcoreapp3.0</TargetFramework>
1206+
<RequiresDockerDependency>None</RequiresDockerDependency>
1207+
<SampleName>Samples.GoogleProtobuf</SampleName>
1208+
</PackageVersionSample>
1209+
<PackageVersionSample Include="test\test-applications\integrations\Samples.GoogleProtobuf\Samples.GoogleProtobuf.csproj">
1210+
<Properties>ApiVersion=3.29.3;RestoreRecursive=false;BuildProjectReferences=false</Properties>
1211+
<TargetFramework>netcoreapp3.1</TargetFramework>
1212+
<RequiresDockerDependency>None</RequiresDockerDependency>
1213+
<SampleName>Samples.GoogleProtobuf</SampleName>
1214+
</PackageVersionSample>
1215+
<PackageVersionSample Include="test\test-applications\integrations\Samples.GoogleProtobuf\Samples.GoogleProtobuf.csproj">
1216+
<Properties>ApiVersion=3.29.3;RestoreRecursive=false;BuildProjectReferences=false</Properties>
1217+
<TargetFramework>net5.0</TargetFramework>
1218+
<RequiresDockerDependency>None</RequiresDockerDependency>
1219+
<SampleName>Samples.GoogleProtobuf</SampleName>
1220+
</PackageVersionSample>
1221+
<PackageVersionSample Include="test\test-applications\integrations\Samples.GoogleProtobuf\Samples.GoogleProtobuf.csproj">
1222+
<Properties>ApiVersion=3.29.3;RestoreRecursive=false;BuildProjectReferences=false</Properties>
1223+
<TargetFramework>net6.0</TargetFramework>
1224+
<RequiresDockerDependency>None</RequiresDockerDependency>
1225+
<SampleName>Samples.GoogleProtobuf</SampleName>
1226+
</PackageVersionSample>
1227+
<PackageVersionSample Include="test\test-applications\integrations\Samples.GoogleProtobuf\Samples.GoogleProtobuf.csproj">
1228+
<Properties>ApiVersion=3.29.3;RestoreRecursive=false;BuildProjectReferences=false</Properties>
1229+
<TargetFramework>net7.0</TargetFramework>
1230+
<RequiresDockerDependency>None</RequiresDockerDependency>
1231+
<SampleName>Samples.GoogleProtobuf</SampleName>
1232+
</PackageVersionSample>
1233+
<PackageVersionSample Include="test\test-applications\integrations\Samples.GoogleProtobuf\Samples.GoogleProtobuf.csproj">
1234+
<Properties>ApiVersion=3.29.3;RestoreRecursive=false;BuildProjectReferences=false</Properties>
1235+
<TargetFramework>net8.0</TargetFramework>
1236+
<RequiresDockerDependency>None</RequiresDockerDependency>
1237+
<SampleName>Samples.GoogleProtobuf</SampleName>
1238+
</PackageVersionSample>
1239+
<PackageVersionSample Include="test\test-applications\integrations\Samples.GoogleProtobuf\Samples.GoogleProtobuf.csproj">
1240+
<Properties>ApiVersion=3.29.3;RestoreRecursive=false;BuildProjectReferences=false</Properties>
1241+
<TargetFramework>net9.0</TargetFramework>
1242+
<RequiresDockerDependency>None</RequiresDockerDependency>
1243+
<SampleName>Samples.GoogleProtobuf</SampleName>
1244+
</PackageVersionSample>
11911245
<PackageVersionSample Include="test\test-applications\integrations\Samples.RabbitMQ\Samples.RabbitMQ.csproj">
11921246
<Properties>ApiVersion=3.6.9;RestoreRecursive=false;BuildProjectReferences=false</Properties>
11931247
<TargetFramework>net462</TargetFramework>

0 commit comments

Comments
 (0)