diff --git a/Directory.Packages.props b/Directory.Packages.props index 9035141f8..9529af6cf 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -17,7 +17,7 @@ - + diff --git a/docs/reference/setup-auto-instrumentation.md b/docs/reference/setup-auto-instrumentation.md index 6306c5868..d7095f989 100644 --- a/docs/reference/setup-auto-instrumentation.md +++ b/docs/reference/setup-auto-instrumentation.md @@ -45,7 +45,7 @@ It instruments the following assemblies: | AdoNet | part of .NET | System.Data 4.0.0 - 4.*.* | | part of .NET | System.Data.Common 4.0.0 - 5.*.* | | AspNet | part of .NET Framework | System.Web 4.0.0 - 4.*.* | -| Kafka | [Confluent.Kafka 1.4.0 - 1.*.*](https://www.nuget.org/packages/Confluent.Kafka) | Confluent.Kafka 1.4.0 - 1.*.* | +| Kafka | [Confluent.Kafka 1.4.0 - 2.*.*](https://www.nuget.org/packages/Confluent.Kafka) | Confluent.Kafka 1.4.0 - 2.*.* | | MySqlCommand | [MySql.Data 6.7.0 - 8.*.*](https://www.nuget.org/packages/MySql.Data) | MySql.Data 6.7.0 - 8.*.* | | NpgsqlCommand | [Npgsql 4.0.0 - 7.*.*](https://www.nuget.org/packages/Npgsql) | Npgsql 4.0.0 - 7.*.* | | OracleCommand | [Oracle.ManagedDataAccess 12.2.1100 - 21.*.*](https://www.nuget.org/packages/Oracle.ManagedDataAccess) | Oracle.ManagedDataAccess 4.122.0 - 4.122.* | diff --git a/docs/reference/setup-kafka.md b/docs/reference/setup-kafka.md new file mode 100644 index 000000000..f73c8ebb5 --- /dev/null +++ b/docs/reference/setup-kafka.md @@ -0,0 +1,21 @@ +--- +mapped_pages: + - https://www.elastic.co/guide/en/apm/agent/dotnet/current/setup-kafka.html +applies_to: + stack: + serverless: + observability: + product: + apm_agent_dotnet: ga +--- + +# Confluent Kafka [setup-kafka] + +## Quick start [_get_started] + +Instrumentation can be performed for Confluent Kafka by referencing [`Confluent.Kafka`](https://www.nuget.org/packages/confluent.kafka) and [`Confluent.Kafka.Extensions.Diagnostics`](https://www.nuget.org/packages/Confluent.Kafka.Extensions.Diagnostics) packages. + +`Confluent.Kafka` is not instrumented automatically but `Confluent.Kafka.Extensions.Diagnostics` provides instrumentations on top of `Confluent.Kafka`. + +Please, follow the instructions provided in [`Confluent.Kafka.Extensions.Diagnostics`](https://www.nuget.org/packages/Confluent.Kafka.Extensions.Diagnostics), especially for the `Producer`. + diff --git a/docs/reference/supported-technologies.md b/docs/reference/supported-technologies.md index 73367547e..7a949b94c 100644 --- a/docs/reference/supported-technologies.md +++ b/docs/reference/supported-technologies.md @@ -93,6 +93,7 @@ We support automatic instrumentation for the following messaging systems | Azure.Messaging.ServiceBus 7.0.0+ | | Azure Queue Storage {applies_to}`apm_agent_dotnet: ga 1.10` | Azure.Storage.Queues 12.6.0+ | [NuGet package](/reference/setup-azure-storage.md) | | Kafka {applies_to}`apm_agent_dotnet: ga 1.12` | See profiler documentation | [Profiler auto instrumentation](/reference/setup-auto-instrumentation.md) | +| Kafka | Confluent.Kafka 2.11.1 | [NuGet package](/reference/setup-kafka.md) | | RabbitMQ {applies_to}`apm_agent_dotnet: ga 1.12` | See profiler documentation | [Profiler auto instrumentation](/reference/setup-auto-instrumentation.md) | diff --git a/docs/reference/toc.yml b/docs/reference/toc.yml index 474bcd925..d98346cd6 100644 --- a/docs/reference/toc.yml +++ b/docs/reference/toc.yml @@ -21,6 +21,7 @@ toc: - file: setup-azure-servicebus.md - file: setup-azure-storage.md - file: setup-mongo-db.md + - file: setup-kafka.md - file: supported-technologies.md - file: configuration.md children: diff --git a/src/profiler/Elastic.Apm.Profiler.Managed/Integrations/Kafka/KafkaConsumerCloseIntegration.cs b/src/profiler/Elastic.Apm.Profiler.Managed/Integrations/Kafka/KafkaConsumerCloseIntegration.cs index fed08cc17..1740785aa 100644 --- a/src/profiler/Elastic.Apm.Profiler.Managed/Integrations/Kafka/KafkaConsumerCloseIntegration.cs +++ b/src/profiler/Elastic.Apm.Profiler.Managed/Integrations/Kafka/KafkaConsumerCloseIntegration.cs @@ -25,7 +25,7 @@ namespace Elastic.Apm.Profiler.Managed.Integrations.Kafka ReturnType = ClrTypeNames.Void, ParameterTypes = new string[0], MinimumVersion = "1.4.0", - MaximumVersion = "1.*.*", + MaximumVersion = "2.*.*", Group = KafkaIntegration.Name)] [Browsable(false)] [EditorBrowsable(EditorBrowsableState.Never)] diff --git a/src/profiler/Elastic.Apm.Profiler.Managed/Integrations/Kafka/KafkaConsumerConsumeIntegration.cs b/src/profiler/Elastic.Apm.Profiler.Managed/Integrations/Kafka/KafkaConsumerConsumeIntegration.cs index e826bf6f2..f6f61b024 100644 --- a/src/profiler/Elastic.Apm.Profiler.Managed/Integrations/Kafka/KafkaConsumerConsumeIntegration.cs +++ b/src/profiler/Elastic.Apm.Profiler.Managed/Integrations/Kafka/KafkaConsumerConsumeIntegration.cs @@ -26,7 +26,7 @@ namespace Elastic.Apm.Profiler.Managed.Integrations.Kafka ReturnType = KafkaIntegration.ConsumeResultTypeName, ParameterTypes = new[] { ClrTypeNames.Int32 }, MinimumVersion = "1.4.0", - MaximumVersion = "1.*.*", + MaximumVersion = "2.*.*", Group = KafkaIntegration.Name)] [Browsable(false)] [EditorBrowsable(EditorBrowsableState.Never)] diff --git a/src/profiler/Elastic.Apm.Profiler.Managed/Integrations/Kafka/KafkaConsumerDisposeIntegration.cs b/src/profiler/Elastic.Apm.Profiler.Managed/Integrations/Kafka/KafkaConsumerDisposeIntegration.cs index 57218e41d..12caaf7de 100644 --- a/src/profiler/Elastic.Apm.Profiler.Managed/Integrations/Kafka/KafkaConsumerDisposeIntegration.cs +++ b/src/profiler/Elastic.Apm.Profiler.Managed/Integrations/Kafka/KafkaConsumerDisposeIntegration.cs @@ -25,7 +25,7 @@ namespace Elastic.Apm.Profiler.Managed.Integrations.Kafka ReturnType = ClrTypeNames.Void, ParameterTypes = new string[0], MinimumVersion = "1.4.0", - MaximumVersion = "1.*.*", + MaximumVersion = "2.*.*", Group = KafkaIntegration.Name)] [Browsable(false)] [EditorBrowsable(EditorBrowsableState.Never)] diff --git a/src/profiler/Elastic.Apm.Profiler.Managed/Integrations/Kafka/KafkaConsumerUnsubscribeIntegration.cs b/src/profiler/Elastic.Apm.Profiler.Managed/Integrations/Kafka/KafkaConsumerUnsubscribeIntegration.cs index 93e91ce28..c45fb8981 100644 --- a/src/profiler/Elastic.Apm.Profiler.Managed/Integrations/Kafka/KafkaConsumerUnsubscribeIntegration.cs +++ b/src/profiler/Elastic.Apm.Profiler.Managed/Integrations/Kafka/KafkaConsumerUnsubscribeIntegration.cs @@ -25,7 +25,7 @@ namespace Elastic.Apm.Profiler.Managed.Integrations.Kafka ReturnType = ClrTypeNames.Void, ParameterTypes = new string[0], MinimumVersion = "1.4.0", - MaximumVersion = "1.*.*", + MaximumVersion = "2.*.*", Group = KafkaIntegration.Name)] [Browsable(false)] [EditorBrowsable(EditorBrowsableState.Never)] diff --git a/src/profiler/Elastic.Apm.Profiler.Managed/Integrations/Kafka/KafkaProduceAsyncIntegration.cs b/src/profiler/Elastic.Apm.Profiler.Managed/Integrations/Kafka/KafkaProduceAsyncIntegration.cs index 20b13121b..72ff4d566 100644 --- a/src/profiler/Elastic.Apm.Profiler.Managed/Integrations/Kafka/KafkaProduceAsyncIntegration.cs +++ b/src/profiler/Elastic.Apm.Profiler.Managed/Integrations/Kafka/KafkaProduceAsyncIntegration.cs @@ -27,7 +27,7 @@ namespace Elastic.Apm.Profiler.Managed.Integrations.Kafka ReturnType = KafkaIntegration.TaskDeliveryReportTypeName, ParameterTypes = new[] { KafkaIntegration.TopicPartitionTypeName, KafkaIntegration.MessageTypeName, ClrTypeNames.CancellationToken }, MinimumVersion = "1.4.0", - MaximumVersion = "1.*.*", + MaximumVersion = "2.*.*", Group = KafkaIntegration.Name)] [Browsable(false)] [EditorBrowsable(EditorBrowsableState.Never)] diff --git a/src/profiler/Elastic.Apm.Profiler.Managed/Integrations/Kafka/KafkaProduceSyncDeliveryHandlerIntegration.cs b/src/profiler/Elastic.Apm.Profiler.Managed/Integrations/Kafka/KafkaProduceSyncDeliveryHandlerIntegration.cs index 59c4df8f2..ae074bffc 100644 --- a/src/profiler/Elastic.Apm.Profiler.Managed/Integrations/Kafka/KafkaProduceSyncDeliveryHandlerIntegration.cs +++ b/src/profiler/Elastic.Apm.Profiler.Managed/Integrations/Kafka/KafkaProduceSyncDeliveryHandlerIntegration.cs @@ -29,7 +29,7 @@ namespace Elastic.Apm.Profiler.Managed.Integrations.Kafka ReturnType = ClrTypeNames.Void, ParameterTypes = new[] { ClrTypeNames.String, "!0", "!1", KafkaIntegration.ActionOfDeliveryReportTypeName }, MinimumVersion = "1.4.0", - MaximumVersion = "1.*.*", + MaximumVersion = "2.*.*", Group = KafkaIntegration.Name)] [Browsable(false)] [EditorBrowsable(EditorBrowsableState.Never)] diff --git a/src/profiler/Elastic.Apm.Profiler.Managed/Integrations/Kafka/KafkaProduceSyncIntegration.cs b/src/profiler/Elastic.Apm.Profiler.Managed/Integrations/Kafka/KafkaProduceSyncIntegration.cs index 441076ff5..3911a62da 100644 --- a/src/profiler/Elastic.Apm.Profiler.Managed/Integrations/Kafka/KafkaProduceSyncIntegration.cs +++ b/src/profiler/Elastic.Apm.Profiler.Managed/Integrations/Kafka/KafkaProduceSyncIntegration.cs @@ -29,7 +29,7 @@ namespace Elastic.Apm.Profiler.Managed.Integrations.Kafka KafkaIntegration.TopicPartitionTypeName, KafkaIntegration.MessageTypeName, KafkaIntegration.ActionOfDeliveryReportTypeName }, MinimumVersion = "1.4.0", - MaximumVersion = "1.*.*", + MaximumVersion = "2.*.*", Group = KafkaIntegration.Name)] [Browsable(false)] [EditorBrowsable(EditorBrowsableState.Never)]