Skip to content

Commit bae86e9

Browse files
committed
Add ConfluentKafka
Apply pr suggestions Apply pr suggestions Add missing new line in CHANGELOG.md Apply pr suggestions DisablePackageBaselineValidation and drop depebdebcy to System.Reflection.Emit.Lightweight Update sample to use OTLP exporter Update UT Update prepare-release.yml Update codecov.yml Remove duplicated activity stop call Remove parent/child relation between publish and receive spans Use static singletons Add ability to share instrumentation between TraceProviderBuilder and MeterProviderBuilder Update src/OpenTelemetry.Instrumentation.ConfluentKafka/InstrumentedProducer.cs Co-authored-by: Mikel Blanchard <[email protected]> Update src/OpenTelemetry.Instrumentation.ConfluentKafka/InstrumentedConsumer.cs Co-authored-by: Mikel Blanchard <[email protected]> Update src/OpenTelemetry.Instrumentation.ConfluentKafka/InstrumentedProducer.cs Co-authored-by: Mikel Blanchard <[email protected]> Update src/OpenTelemetry.Instrumentation.ConfluentKafka/InstrumentedProducer.cs Co-authored-by: Mikel Blanchard <[email protected]> Set Activity status to ERROR and set error.type tag fix Examples.Kafka README.md Run dotnet format on new code Update metering implementation to follow 1.24
1 parent e3a90d7 commit bae86e9

Some content is hidden

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

47 files changed

+2628
-0
lines changed

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ body:
3030
- OpenTelemetry.Instrumentation.AWS
3131
- OpenTelemetry.Instrumentation.AWSLambda
3232
- OpenTelemetry.Instrumentation.Cassandra
33+
- OpenTelemetry.Instrumentation.ConfluentKafka
3334
- OpenTelemetry.Instrumentation.ElasticsearchClient
3435
- OpenTelemetry.Instrumentation.EntityFrameworkCore
3536
- OpenTelemetry.Instrumentation.EventCounters

.github/ISSUE_TEMPLATE/feature_request.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ body:
3030
- OpenTelemetry.Instrumentation.AWS
3131
- OpenTelemetry.Instrumentation.AWSLambda
3232
- OpenTelemetry.Instrumentation.Cassandra
33+
- OpenTelemetry.Instrumentation.ConfluentKafka
3334
- OpenTelemetry.Instrumentation.ElasticsearchClient
3435
- OpenTelemetry.Instrumentation.EntityFrameworkCore
3536
- OpenTelemetry.Instrumentation.EventCounters

.github/codecov.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,11 @@ flags:
6363
paths:
6464
- src/OpenTelemetry.Instrumentation.AspNetCore
6565

66+
unittests-Instrumentation.ConfluentKafka:
67+
carryforward: true
68+
paths:
69+
- src/OpenTelemetry.Instrumentation.ConfluentKafka
70+
6671
unittests-Instrumentation.EventCounters:
6772
carryforward: true
6873
paths:

.github/component_owners.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ components:
3535
- ppittle
3636
src/OpenTelemetry.Instrumentation.Cassandra/:
3737
- xsoheilalizadeh
38+
src/OpenTelemetry.Instrumentation.ConfluentKafka/:
39+
- g7ed6e
3840
src/OpenTelemetry.Instrumentation.ElasticsearchClient/:
3941
- ejsmith
4042
src/OpenTelemetry.Instrumentation.EventCounters/:
@@ -130,6 +132,8 @@ components:
130132
- ppittle
131133
test/OpenTelemetry.Instrumentation.Cassandra.Tests/:
132134
- xsoheilalizadeh
135+
test/OpenTelemetry.Instrumentation.ConfluentKafka.Tests/:
136+
- g7ed6e
133137
test/OpenTelemetry.Instrumentation.ElasticsearchClient.Tests/:
134138
- ejsmith
135139
test/OpenTelemetry.Instrumentation.EventCounters.Tests/:

.github/workflows/ci.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ jobs:
3636
instrumentation-aws: ['*/OpenTelemetry.Instrumentation.AWS/**', '*/OpenTelemetry.Instrumentation.AWS.Tests/**', '!**/*.md']
3737
instrumentation-aws-lambda: ['*/OpenTelemetry.Instrumentation.AWSLambda/**', '*/OpenTelemetry.Instrumentation.AWSLambda.Tests/**', '!**/*.md']
3838
instrumentation-cassandra: ['*/OpenTelemetry.Instrumentation.Cassandra*/**', '!**/*.md']
39+
instrumentation-confluentkafka: ['*/OpenTelemetry.Instrumentation.ConfluentKafka*/**', 'examples/kafka/**', '!**/*.md']
3940
instrumentation-elasticsearchclient: ['*/OpenTelemetry.Instrumentation.ElasticsearchClient*/**', '!**/*.md']
4041
instrumentation-entityframeworkcore: ['*/OpenTelemetry.Instrumentation.EntityFrameworkCore*/**', '!**/*.md']
4142
instrumentation-eventcounters: ['*/OpenTelemetry.Instrumentation.EventCounters*/**', 'examples/event-counters/**', '!**/*.md']
@@ -222,6 +223,17 @@ jobs:
222223
project-name: Component[OpenTelemetry.Instrumentation.Cassandra]
223224
code-cov-name: Instrumentation.Cassandra
224225

226+
build-test-instrumentation-confluentkafka:
227+
needs: detect-changes
228+
if: |
229+
contains(needs.detect-changes.outputs.changes, 'instrumentation-confluentkafka')
230+
|| contains(needs.detect-changes.outputs.changes, 'build')
231+
|| contains(needs.detect-changes.outputs.changes, 'shared')
232+
uses: ./.github/workflows/Component.BuildTest.yml
233+
with:
234+
project-name: Component[OpenTelemetry.Instrumentation.ConfluentKafka]
235+
code-cov-name: Instrumentation.ConfluentKafka
236+
225237
build-test-instrumentation-elasticsearchclient:
226238
needs: detect-changes
227239
if: |
@@ -518,6 +530,7 @@ jobs:
518530
|| contains(needs.detect-changes.outputs.changes, 'instrumentation-aspnetcore')
519531
|| contains(needs.detect-changes.outputs.changes, 'instrumentation-aws')
520532
|| contains(needs.detect-changes.outputs.changes, 'instrumentation-awslambda')
533+
|| contains(needs.detect-changes.outputs.changes, 'instrumentation-confluentkafka')
521534
|| contains(needs.detect-changes.outputs.changes, 'instrumentation-eventcounters')
522535
|| contains(needs.detect-changes.outputs.changes, 'instrumentation-grpcnetclient')
523536
|| contains(needs.detect-changes.outputs.changes, 'instrumentation-http')
@@ -556,6 +569,7 @@ jobs:
556569
build-test-instrumentation-aws,
557570
build-test-instrumentation-awslambda,
558571
build-test-instrumentation-cassandra,
572+
build-test-instrumentation-confluentkafka,
559573
build-test-instrumentation-elasticsearchclient,
560574
build-test-instrumentation-entityframeworkcore,
561575
build-test-instrumentation-eventcounters,

.github/workflows/prepare-release.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ on:
2020
- OpenTelemetry.Instrumentation.AWS
2121
- OpenTelemetry.Instrumentation.AWSLambda
2222
- OpenTelemetry.Instrumentation.Cassandra
23+
- OpenTelemetry.Instrumentation.ConfluentKafka
2324
- OpenTelemetry.Instrumentation.ElasticsearchClient
2425
- OpenTelemetry.Instrumentation.EntityFrameworkCore
2526
- OpenTelemetry.Instrumentation.EventCounters

build/Common.props

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
<OpenTelemetryCoreLatestVersion>[1.9.0,2.0)</OpenTelemetryCoreLatestVersion>
4343
<OpenTelemetryCoreLatestPrereleaseVersion>[1.9.0-rc.1]</OpenTelemetryCoreLatestPrereleaseVersion>
4444
<StackExchangeRedisPkgVer>[2.1.58,3.0)</StackExchangeRedisPkgVer>
45+
<ConfluentKafkaPkgVer>[2.3.0,3.0)</ConfluentKafkaPkgVer>
4546
<CassandraCSharpDriverPkgVer>[3.16.0,4.0)</CassandraCSharpDriverPkgVer>
4647
<StyleCopAnalyzersPkgVer>[1.2.0-beta.507,2.0)</StyleCopAnalyzersPkgVer>
4748
<SystemNetHttp>[4.3.4,)</SystemNetHttp>
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<Project>
2+
3+
<PropertyGroup>
4+
<RepoRoot>$([System.IO.Directory]::GetParent($(MSBuildThisFileDirectory)).Parent.Parent.FullName)</RepoRoot>
5+
</PropertyGroup>
6+
7+
<ItemGroup>
8+
<SolutionProjects Include="$(RepoRoot)\src\OpenTelemetry.Instrumentation.ConfluentKafka\OpenTelemetry.Instrumentation.ConfluentKafka.csproj" />
9+
<SolutionProjects Include="$(RepoRoot)\test\OpenTelemetry.Instrumentation.ConfluentKafka.Tests\OpenTelemetry.Instrumentation.ConfluentKafka.Tests.csproj" />
10+
<SolutionProjects Include="$(RepoRoot)\examples\kafka\**\*.csproj" />
11+
12+
<PackProjects Include="$(RepoRoot)\src\OpenTelemetry.Instrumentation.ConfluentKafka\OpenTelemetry.Instrumentation.ConfluentKafka.csproj" />
13+
14+
<TestProjects Include="$(RepoRoot)\test\OpenTelemetry.Instrumentation.ConfluentKafka.Tests\OpenTelemetry.Instrumentation.ConfluentKafka.Tests.csproj" />
15+
</ItemGroup>
16+
17+
<Target Name="Build">
18+
<MSBuild Projects="@(SolutionProjects)" Targets="Build" ContinueOnError="ErrorAndStop" />
19+
</Target>
20+
21+
<Target Name="Restore">
22+
<MSBuild Projects="@(SolutionProjects)" Targets="Restore" ContinueOnError="ErrorAndStop" />
23+
</Target>
24+
25+
<Target Name="Pack">
26+
<MSBuild Projects="@(PackProjects)" Targets="Pack" ContinueOnError="ErrorAndStop" />
27+
</Target>
28+
29+
<Target Name="VSTest">
30+
<MSBuild Projects="@(TestProjects)" Targets="VSTest" ContinueOnError="ErrorAndStop" />
31+
</Target>
32+
33+
</Project>

examples/kafka/Constants.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
// Copyright The OpenTelemetry Authors
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
namespace Examples.ConfluentKafka;
5+
6+
public static class Constants
7+
{
8+
public static readonly string Topic = $"test-topic-{Guid.NewGuid()}";
9+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<Project Sdk="Microsoft.NET.Sdk.Worker">
2+
<PropertyGroup>
3+
<OutputType>Exe</OutputType>
4+
<TargetFramework>net8.0</TargetFramework>
5+
<ImplicitUsings>enable</ImplicitUsings>
6+
<Nullable>enable</Nullable>
7+
</PropertyGroup>
8+
<ItemGroup>
9+
<ProjectReference Include="$(RepoRoot)\src\OpenTelemetry.Instrumentation.ConfluentKafka\OpenTelemetry.Instrumentation.ConfluentKafka.csproj" />
10+
</ItemGroup>
11+
<ItemGroup>
12+
<PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
13+
<PackageReference Include="OpenTelemetry.Extensions.Hosting" Version="$(OpenTelemetryCoreLatestVersion)" />
14+
<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="$(OpenTelemetryCoreLatestVersion)" />
15+
<PackageReference Include="OpenTelemetry.Exporter.Console" Version="$(OpenTelemetryCoreLatestVersion)" />
16+
</ItemGroup>
17+
</Project>
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
// Copyright The OpenTelemetry Authors
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
using Confluent.Kafka;
5+
using OpenTelemetry.Instrumentation.ConfluentKafka;
6+
7+
namespace Examples.ConfluentKafka;
8+
9+
public class ProduceConsumeHostedService(
10+
InstrumentedProducerBuilder<string, string> instrumentedProducerBuilder,
11+
InstrumentedConsumerBuilder<string, string> instrumentedConsumerBuilder)
12+
: BackgroundService
13+
{
14+
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
15+
{
16+
IProducer<string, string> producer = instrumentedProducerBuilder.Build();
17+
IConsumer<string, string> consumer = instrumentedConsumerBuilder.Build();
18+
19+
for (int j = 0; j < 100; j++)
20+
{
21+
await producer.ProduceAsync(
22+
Constants.Topic,
23+
new Message<string, string> { Key = "any_key", Value = $"any_value_{j}" },
24+
stoppingToken);
25+
}
26+
27+
for (int j = 0; j < 100; j++)
28+
{
29+
producer.Produce(
30+
Constants.Topic,
31+
new Message<string, string> { Key = "any_key", Value = $"any_value_{j}" });
32+
}
33+
34+
producer.Flush(stoppingToken);
35+
36+
consumer.Subscribe(Constants.Topic);
37+
while (!stoppingToken.IsCancellationRequested)
38+
{
39+
ConsumeResult<string, string> consumeResult = consumer.Consume(stoppingToken);
40+
if (consumeResult == null)
41+
{
42+
continue;
43+
}
44+
45+
if (consumeResult.IsPartitionEOF)
46+
{
47+
break;
48+
}
49+
50+
Console.WriteLine($"Consumer {consumer.Name} received message: {consumeResult.Message.Value}");
51+
}
52+
}
53+
}

examples/kafka/Program.cs

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
// Copyright The OpenTelemetry Authors
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
using Confluent.Kafka;
5+
using Examples.ConfluentKafka;
6+
using OpenTelemetry.Instrumentation.ConfluentKafka;
7+
using OpenTelemetry.Metrics;
8+
using OpenTelemetry.Trace;
9+
10+
var builder = Host.CreateApplicationBuilder(args);
11+
12+
const string bootstrapServers = "localhost:9092";
13+
14+
builder.Services.AddSingleton(_ =>
15+
{
16+
ProducerConfig producerConfig = new() { BootstrapServers = bootstrapServers };
17+
return new InstrumentedProducerBuilder<string, string>(producerConfig);
18+
});
19+
builder.Services.AddSingleton(_ =>
20+
{
21+
ConsumerConfig consumerConfigA = new()
22+
{
23+
BootstrapServers = bootstrapServers,
24+
GroupId = "group-a",
25+
AutoOffsetReset = AutoOffsetReset.Earliest,
26+
EnablePartitionEof = true,
27+
};
28+
return new InstrumentedConsumerBuilder<string, string>(consumerConfigA);
29+
});
30+
31+
builder.Services.AddOpenTelemetry()
32+
.WithTracing(tracing =>
33+
{
34+
tracing.AddConsoleExporter()
35+
.AddOtlpExporter()
36+
.AddKafkaProducerInstrumentation<string, string>()
37+
.AddKafkaConsumerInstrumentation<string, string>();
38+
})
39+
.WithMetrics(metering =>
40+
{
41+
metering.AddConsoleExporter()
42+
.AddOtlpExporter()
43+
.AddKafkaProducerInstrumentation<string, string>()
44+
.AddKafkaConsumerInstrumentation<string, string>();
45+
});
46+
47+
builder.Services.AddHostedService<ProduceConsumeHostedService>();
48+
49+
var app = builder.Build();
50+
await app.RunAsync();

examples/kafka/README.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Run Examples.ConfluentKafka
2+
3+
Start the Confluent Kafka stack:
4+
5+
```cmd
6+
docker run -d --name kafka -p 9092:9092 confluentinc/confluent-local
7+
```
8+
9+
Start the Aspire Dashboard:
10+
11+
```cmd
12+
docker run --rm -it -p 18888:18888 -p 4317:18889 -d --name aspire-dashboard mcr.microsoft.com/dotnet/nightly/aspire-dashboard:8.0.0
13+
```
14+

opentelemetry-dotnet-contrib.sln

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -377,6 +377,14 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ISSUE_TEMPLATE", "ISSUE_TEM
377377
.github\ISSUE_TEMPLATE\feature_request.yml = .github\ISSUE_TEMPLATE\feature_request.yml
378378
EndProjectSection
379379
EndProject
380+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenTelemetry.Instrumentation.ConfluentKafka", "src\OpenTelemetry.Instrumentation.ConfluentKafka\OpenTelemetry.Instrumentation.ConfluentKafka.csproj", "{96341E23-990E-4144-A7E3-9EF0DAFF3232}"
381+
EndProject
382+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenTelemetry.Instrumentation.ConfluentKafka.Tests", "test\OpenTelemetry.Instrumentation.ConfluentKafka.Tests\OpenTelemetry.Instrumentation.ConfluentKafka.Tests.csproj", "{BE40900A-2859-471D-8802-21DFD73DDAA7}"
383+
EndProject
384+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "kafka", "kafka", "{3A464E7A-42F3-44B0-B8D7-80521A7704A6}"
385+
EndProject
386+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Examples.ConfluentKafka", "examples\kafka\Examples.ConfluentKafka.csproj", "{9B994669-E839-4C42-A0F1-DF9DD058C1DC}"
387+
EndProject
380388
Global
381389
GlobalSection(SolutionConfigurationPlatforms) = preSolution
382390
Debug|Any CPU = Debug|Any CPU
@@ -779,6 +787,18 @@ Global
779787
{B13394D6-D3D7-453E-B91A-24C199F41C5E}.Debug|Any CPU.Build.0 = Debug|Any CPU
780788
{B13394D6-D3D7-453E-B91A-24C199F41C5E}.Release|Any CPU.ActiveCfg = Release|Any CPU
781789
{B13394D6-D3D7-453E-B91A-24C199F41C5E}.Release|Any CPU.Build.0 = Release|Any CPU
790+
{96341E23-990E-4144-A7E3-9EF0DAFF3232}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
791+
{96341E23-990E-4144-A7E3-9EF0DAFF3232}.Debug|Any CPU.Build.0 = Debug|Any CPU
792+
{96341E23-990E-4144-A7E3-9EF0DAFF3232}.Release|Any CPU.ActiveCfg = Release|Any CPU
793+
{96341E23-990E-4144-A7E3-9EF0DAFF3232}.Release|Any CPU.Build.0 = Release|Any CPU
794+
{BE40900A-2859-471D-8802-21DFD73DDAA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
795+
{BE40900A-2859-471D-8802-21DFD73DDAA7}.Debug|Any CPU.Build.0 = Debug|Any CPU
796+
{BE40900A-2859-471D-8802-21DFD73DDAA7}.Release|Any CPU.ActiveCfg = Release|Any CPU
797+
{BE40900A-2859-471D-8802-21DFD73DDAA7}.Release|Any CPU.Build.0 = Release|Any CPU
798+
{9B994669-E839-4C42-A0F1-DF9DD058C1DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
799+
{9B994669-E839-4C42-A0F1-DF9DD058C1DC}.Debug|Any CPU.Build.0 = Debug|Any CPU
800+
{9B994669-E839-4C42-A0F1-DF9DD058C1DC}.Release|Any CPU.ActiveCfg = Release|Any CPU
801+
{9B994669-E839-4C42-A0F1-DF9DD058C1DC}.Release|Any CPU.Build.0 = Release|Any CPU
782802
EndGlobalSection
783803
GlobalSection(SolutionProperties) = preSolution
784804
HideSolutionNode = FALSE
@@ -899,6 +919,10 @@ Global
899919
{70CA77D4-5D7F-4D70-A6B5-8AAC07A8EA3C} = {2097345F-4DD3-477D-BC54-A922F9B2B402}
900920
{45D29DAA-0DB9-4808-B879-1AECC37EF366} = {824BD1DE-3FA8-4FE0-823A-FD365EAC78AF}
901921
{40373C78-0513-4067-A96B-96A851369761} = {1A06E14B-DD2F-4536-9D2E-F708C0C43555}
922+
{96341E23-990E-4144-A7E3-9EF0DAFF3232} = {22DF5DC0-1290-4E83-A9D8-6BB7DE3B3E63}
923+
{BE40900A-2859-471D-8802-21DFD73DDAA7} = {2097345F-4DD3-477D-BC54-A922F9B2B402}
924+
{3A464E7A-42F3-44B0-B8D7-80521A7704A6} = {B75EE478-97F7-4E9F-9A5A-DB3D0988EDEA}
925+
{9B994669-E839-4C42-A0F1-DF9DD058C1DC} = {3A464E7A-42F3-44B0-B8D7-80521A7704A6}
902926
EndGlobalSection
903927
GlobalSection(ExtensibilityGlobals) = postSolution
904928
SolutionGuid = {B0816796-CDB3-47D7-8C3C-946434DE3B66}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#nullable enable
2+
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
OpenTelemetry.Instrumentation.ConfluentKafka.InstrumentedConsumerBuilder<TKey, TValue>
2+
OpenTelemetry.Instrumentation.ConfluentKafka.InstrumentedConsumerBuilder<TKey, TValue>.InstrumentedConsumerBuilder(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<string!, string!>>! config) -> void
3+
OpenTelemetry.Instrumentation.ConfluentKafka.InstrumentedProducerBuilder<TKey, TValue>
4+
OpenTelemetry.Instrumentation.ConfluentKafka.InstrumentedProducerBuilder<TKey, TValue>.InstrumentedProducerBuilder(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<string!, string!>>! config) -> void
5+
OpenTelemetry.Metrics.MeterProviderBuilderExtensions
6+
OpenTelemetry.Trace.TracerProviderBuilderExtensions
7+
override OpenTelemetry.Instrumentation.ConfluentKafka.InstrumentedConsumerBuilder<TKey, TValue>.Build() -> Confluent.Kafka.IConsumer<TKey, TValue>!
8+
override OpenTelemetry.Instrumentation.ConfluentKafka.InstrumentedProducerBuilder<TKey, TValue>.Build() -> Confluent.Kafka.IProducer<TKey, TValue>!
9+
static OpenTelemetry.Metrics.MeterProviderBuilderExtensions.AddKafkaConsumerInstrumentation<TKey, TValue>(this OpenTelemetry.Metrics.MeterProviderBuilder! builder) -> OpenTelemetry.Metrics.MeterProviderBuilder!
10+
static OpenTelemetry.Metrics.MeterProviderBuilderExtensions.AddKafkaConsumerInstrumentation<TKey, TValue>(this OpenTelemetry.Metrics.MeterProviderBuilder! builder, OpenTelemetry.Instrumentation.ConfluentKafka.InstrumentedConsumerBuilder<TKey, TValue>! consumerBuilder) -> OpenTelemetry.Metrics.MeterProviderBuilder!
11+
static OpenTelemetry.Metrics.MeterProviderBuilderExtensions.AddKafkaConsumerInstrumentation<TKey, TValue>(this OpenTelemetry.Metrics.MeterProviderBuilder! builder, string? name, OpenTelemetry.Instrumentation.ConfluentKafka.InstrumentedConsumerBuilder<TKey, TValue>? consumerBuilder) -> OpenTelemetry.Metrics.MeterProviderBuilder!
12+
static OpenTelemetry.Metrics.MeterProviderBuilderExtensions.AddKafkaProducerInstrumentation<TKey, TValue>(this OpenTelemetry.Metrics.MeterProviderBuilder! builder) -> OpenTelemetry.Metrics.MeterProviderBuilder!
13+
static OpenTelemetry.Metrics.MeterProviderBuilderExtensions.AddKafkaProducerInstrumentation<TKey, TValue>(this OpenTelemetry.Metrics.MeterProviderBuilder! builder, OpenTelemetry.Instrumentation.ConfluentKafka.InstrumentedProducerBuilder<TKey, TValue>! producerBuilder) -> OpenTelemetry.Metrics.MeterProviderBuilder!
14+
static OpenTelemetry.Metrics.MeterProviderBuilderExtensions.AddKafkaProducerInstrumentation<TKey, TValue>(this OpenTelemetry.Metrics.MeterProviderBuilder! builder, string? name, OpenTelemetry.Instrumentation.ConfluentKafka.InstrumentedProducerBuilder<TKey, TValue>? producerBuilder) -> OpenTelemetry.Metrics.MeterProviderBuilder!
15+
static OpenTelemetry.Trace.TracerProviderBuilderExtensions.AddKafkaConsumerInstrumentation<TKey, TValue>(this OpenTelemetry.Trace.TracerProviderBuilder! builder) -> OpenTelemetry.Trace.TracerProviderBuilder!
16+
static OpenTelemetry.Trace.TracerProviderBuilderExtensions.AddKafkaConsumerInstrumentation<TKey, TValue>(this OpenTelemetry.Trace.TracerProviderBuilder! builder, OpenTelemetry.Instrumentation.ConfluentKafka.InstrumentedConsumerBuilder<TKey, TValue>! consumerBuilder) -> OpenTelemetry.Trace.TracerProviderBuilder!
17+
static OpenTelemetry.Trace.TracerProviderBuilderExtensions.AddKafkaConsumerInstrumentation<TKey, TValue>(this OpenTelemetry.Trace.TracerProviderBuilder! builder, string? name, OpenTelemetry.Instrumentation.ConfluentKafka.InstrumentedConsumerBuilder<TKey, TValue>? consumerBuilder) -> OpenTelemetry.Trace.TracerProviderBuilder!
18+
static OpenTelemetry.Trace.TracerProviderBuilderExtensions.AddKafkaProducerInstrumentation<TKey, TValue>(this OpenTelemetry.Trace.TracerProviderBuilder! builder) -> OpenTelemetry.Trace.TracerProviderBuilder!
19+
static OpenTelemetry.Trace.TracerProviderBuilderExtensions.AddKafkaProducerInstrumentation<TKey, TValue>(this OpenTelemetry.Trace.TracerProviderBuilder! builder, OpenTelemetry.Instrumentation.ConfluentKafka.InstrumentedProducerBuilder<TKey, TValue>! producerBuilder) -> OpenTelemetry.Trace.TracerProviderBuilder!
20+
static OpenTelemetry.Trace.TracerProviderBuilderExtensions.AddKafkaProducerInstrumentation<TKey, TValue>(this OpenTelemetry.Trace.TracerProviderBuilder! builder, string? name, OpenTelemetry.Instrumentation.ConfluentKafka.InstrumentedProducerBuilder<TKey, TValue>? producerBuilder) -> OpenTelemetry.Trace.TracerProviderBuilder!
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// Copyright The OpenTelemetry Authors
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
using System.Runtime.CompilerServices;
5+
6+
[assembly: InternalsVisibleTo("OpenTelemetry.Instrumentation.ConfluentKafka.Tests" + AssemblyInfo.PublicKey)]
7+
8+
#if SIGNED
9+
internal static class AssemblyInfo
10+
{
11+
public const string PublicKey = ", PublicKey=002400000480000094000000060200000024000052534131000400000100010051C1562A090FB0C9F391012A32198B5E5D9A60E9B80FA2D7B434C9E5CCB7259BD606E66F9660676AFC6692B8CDC6793D190904551D2103B7B22FA636DCBB8208839785BA402EA08FC00C8F1500CCEF28BBF599AA64FFB1E1D5DC1BF3420A3777BADFE697856E9D52070A50C3EA5821C80BEF17CA3ACFFA28F89DD413F096F898";
12+
}
13+
#else
14+
internal static class AssemblyInfo
15+
{
16+
public const string PublicKey = "";
17+
}
18+
#endif
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Changelog
2+
3+
## Unreleased
4+
5+
* Initial release

0 commit comments

Comments
 (0)