Skip to content
Merged
Show file tree
Hide file tree
Changes from 19 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
209 changes: 209 additions & 0 deletions CHANGELOG.md

Large diffs are not rendered by default.

8 changes: 6 additions & 2 deletions docker/docker-compose-aspnetcore/oats.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ expected:
contains:
- 'Application started'
metrics:
- promql: db_client_operation_duration_seconds_count{}
value: '>= 0'
- promql: http_client_request_duration_seconds_count{}
value: '>= 0'
- promql: http_client_request_duration_seconds_count{http_request_method="GET", http_response_status_code="200"}
Expand Down Expand Up @@ -72,14 +74,16 @@ expected:
attributes:
db.statement: LPUSH
db.system: redis
net.peer.name: redis
db.redis.database_index: '0'
server.address: redis
- traceql: '{ span.http.route =~ "/api/todo/items/" }'
spans:
- name: 'main'
allow-duplicates: true
attributes:
db.system: sqlite
db.name: main
peer.service: /app/App_Data/TodoApp.db
server.address: /app/App_Data/TodoApp.db
otel.library.name: OpenTelemetry.Instrumentation.EntityFrameworkCore
- traceql: '{ span.http.route =~ "api/Aws/ListBuckets" }'
spans:
Expand Down
5 changes: 2 additions & 3 deletions examples/net8.0/aspnetcore/aspnetcore.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,10 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="AWSSDK.S3" Version="3.7.418.2" />
<PackageReference Include="Microsoft.Data.SqlClient" Version="6.0.2" />
<PackageReference Include="AWSSDK.S3" Version="4.0.6.2" />
<PackageReference Include="Microsoft.Data.SqlClient" Version="6.1.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="8.0.17" />
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.20.1" />
<PackageReference Include="OpenTelemetry.Extensions.Hosting" Version="1.12.0" />
<PackageReference Include="OpenTelemetry.Exporter.Console" Version="1.12.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="9.0.3" />
</ItemGroup>
Expand Down
39 changes: 14 additions & 25 deletions src/Grafana.OpenTelemetry.Base/Grafana.OpenTelemetry.Base.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,41 +7,30 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.1" />
<PackageReference Include="System.Text.Json" Version="8.0.6" Condition="!$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net8.0'))" />
<PackageReference Include="MinVer" Version="6.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="OpenTelemetry" Version="1.9.0" />
<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.9.0" />
<PackageReference Include="OpenTelemetry" Version="1.12.0" />
<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.12.0" />
</ItemGroup>

<!-- Stable instrumentation packages -->
<ItemGroup>
<PackageReference Include="OpenTelemetry.Instrumentation.Runtime" Version="1.9.0" />
</ItemGroup>

<!-- Non-stable instrumentation packages with no dependencies -->
<ItemGroup>
<PackageReference Include="OpenTelemetry.Instrumentation.GrpcNetClient" Version="1.9.0-beta.1" />
<PackageReference Include="OpenTelemetry.Instrumentation.Http" Version="1.9.0" />
<PackageReference Include="OpenTelemetry.Instrumentation.Process" Version="0.5.0-beta.7" />
<PackageReference Include="OpenTelemetry.Instrumentation.SqlClient" Version="1.9.0-beta.1" />
</ItemGroup>

<!-- Non-stable instrumentation packages with no dependencies, non netstandard2.0 -->
<ItemGroup Condition=" '$(TargetFramework)' != 'netstandard2.0' ">
<PackageReference Include="OpenTelemetry.Resources.Host" Version="0.1.0-beta.3" />
<PackageReference Include="OpenTelemetry.Resources.OperatingSystem" Version="0.1.0-alpha.4" />
<PackageReference Include="OpenTelemetry.Resources.Process" Version="0.1.0-beta.3" />
<PackageReference Include="OpenTelemetry.Resources.ProcessRuntime" Version="0.1.0-beta.2" />
<ItemGroup Label="Stable Instrumentation Packages">
<PackageReference Include="OpenTelemetry.Instrumentation.Http" Version="1.12.0" />
<PackageReference Include="OpenTelemetry.Instrumentation.Runtime" Version="1.12.0" />
</ItemGroup>

<ItemGroup Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net8.0'))">
<PackageReference Include="OpenTelemetry.Resources.Container" Version="1.0.0-beta.9" />
<ItemGroup Label="Non-stable instrumentation packages">
<PackageReference Include="OpenTelemetry.Instrumentation.GrpcNetClient" Version="1.12.0-beta.1" />
<PackageReference Include="OpenTelemetry.Instrumentation.Process" Version="1.12.0-beta.1" />
<PackageReference Include="OpenTelemetry.Instrumentation.SqlClient" Version="1.12.0-beta.2" />
<PackageReference Include="OpenTelemetry.Resources.Container" Version="1.12.0-beta.1" />
<PackageReference Include="OpenTelemetry.Resources.Host" Version="1.12.0-beta.1" />
<PackageReference Include="OpenTelemetry.Resources.OperatingSystem" Version="1.12.0-beta.1" />
<PackageReference Include="OpenTelemetry.Resources.Process" Version="1.12.0-beta.1" />
<PackageReference Include="OpenTelemetry.Resources.ProcessRuntime" Version="1.12.0-beta.1" />
</ItemGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ namespace Grafana.OpenTelemetry
[EventSource(Name = "OpenTelemetry-Grafana-Distribution")]
internal sealed partial class GrafanaOpenTelemetryEventSource : EventSource
{
public static GrafanaOpenTelemetryEventSource Log = new GrafanaOpenTelemetryEventSource();
public static readonly GrafanaOpenTelemetryEventSource Log = new GrafanaOpenTelemetryEventSource();

[NonEvent]
public void EnabledMetricsInstrumentation(string instrumentationLibrary)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
// SPDX-License-Identifier: Apache-2.0
//

using OpenTelemetry.Metrics;
using OpenTelemetry.Trace;

namespace Grafana.OpenTelemetry
Expand All @@ -14,6 +15,11 @@ internal class SqlClientInitializer : InstrumentationInitializer
{
public override Instrumentation Id { get; } = Instrumentation.SqlClient;

protected override void InitializeMetrics(MeterProviderBuilder builder)
{
builder.AddSqlClientInstrumentation();
}

protected override void InitializeTracing(TracerProviderBuilder builder)
{
builder.AddSqlClientInstrumentation();
Expand Down
47 changes: 19 additions & 28 deletions src/Grafana.OpenTelemetry/Grafana.OpenTelemetry.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -16,49 +16,40 @@

<ItemGroup>
<ProjectReference Include="../Grafana.OpenTelemetry.Base/Grafana.OpenTelemetry.Base.csproj" />
<PackageReference Include="MinVer" Version="6.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="MinVer" Version="6.0.0" PrivateAssets="all" />
</ItemGroup>

<!-- This dependency is pulled in by `OpenTelemetry.Instrumentation.Cassandra` with a minimum
version of 3.16.0. We change this to 3.17.0, as the previous versions have dependency
requirements that conflict with recent .NET package versions. -->
<ItemGroup>
<!-- TODO Bump to 3.22.0? -->
<PackageReference Include="CassandraCSharpDriver" Version="[3.17.0,)" />
</ItemGroup>

<!-- Stable instrumentation packages with dependencies, only .NET -->
<ItemGroup Condition=" '$(TargetFramework)' != 'net462' ">
<PackageReference Include="OpenTelemetry.Extensions.Hosting" Version="1.9.0" /> <!-- needed for AspNetCore -->
<ItemGroup Label="Stable instrumentation packages with dependencies">
<PackageReference Include="OpenTelemetry.Instrumentation.AWS" Version="1.12.0" />
<PackageReference Include="OpenTelemetry.Instrumentation.AWSLambda" Version="1.12.0" />
</ItemGroup>

<!-- Non-stable instrumentation packages with dependencies, both .NET framework and .NET -->
<ItemGroup>
<PackageReference Include="OpenTelemetry.Instrumentation.AWS" Version="1.10.0-beta.1" />
<PackageReference Include="OpenTelemetry.Instrumentation.Cassandra" Version="1.0.0-beta.1" />
<PackageReference Include="OpenTelemetry.Instrumentation.ElasticsearchClient" Version="1.0.0-beta.5" />
<PackageReference Include="OpenTelemetry.Instrumentation.EntityFrameworkCore" Version="1.0.0-beta.12" />
<PackageReference Include="OpenTelemetry.Instrumentation.Hangfire" Version="1.6.0-beta.1" />
<PackageReference Include="OpenTelemetry.Instrumentation.Quartz" Version="1.0.0-beta.3" />
<PackageReference Include="OpenTelemetry.Instrumentation.StackExchangeRedis" Version="1.9.0-beta.1" />
<PackageReference Include="OpenTelemetry.Instrumentation.Wcf" Version="1.0.0-rc.18" />
<ItemGroup Label="Non-stable instrumentation packages with dependencies, only .NET" Condition=" '$([MSBuild]::GetTargetFrameworkIdentifier(`$(TargetFramework)`))' != '.NETFramework' ">
<PackageReference Include="OpenTelemetry.Extensions.Hosting" Version="1.12.0" /> <!-- Needed for ASP.NET Core -->
<PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.12.0" />
</ItemGroup>

<!-- Non-stable instrumentation packages with dependencies, only .NET -->
<ItemGroup Condition=" '$(TargetFramework)' != 'net462' ">
<PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.9.0" />
</ItemGroup>

<!-- Non-stable instrumentation packages with dependencies, only .NET framework -->
<ItemGroup Condition=" '$(TargetFramework)' == 'net462' ">
<PackageReference Include="OpenTelemetry.Instrumentation.AspNet" Version="1.9.0-beta.1" />
<PackageReference Include="OpenTelemetry.Instrumentation.Owin" Version="1.0.0-rc.6" />
<ItemGroup Label="Non-stable instrumentation packages with dependencies">
<PackageReference Include="OpenTelemetry.Instrumentation.Cassandra" Version="1.0.0-beta.2" />
<PackageReference Include="OpenTelemetry.Instrumentation.ElasticsearchClient" Version="1.0.0-beta.5" />
<PackageReference Include="OpenTelemetry.Instrumentation.EntityFrameworkCore" Version="1.12.0-beta.2" />
<PackageReference Include="OpenTelemetry.Instrumentation.Hangfire" Version="1.12.0-beta.1" />
<PackageReference Include="OpenTelemetry.Instrumentation.Quartz" Version="1.12.0-beta.1" />
<PackageReference Include="OpenTelemetry.Instrumentation.StackExchangeRedis" Version="1.12.0-beta.2" />
<PackageReference Include="OpenTelemetry.Instrumentation.Wcf" Version="1.12.0-beta.1" />
</ItemGroup>

<ItemGroup Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net8.0'))">
<PackageReference Include="OpenTelemetry.Instrumentation.AWSLambda" Version="1.10.0-beta.1" />
<ItemGroup Label="Non-stable instrumentation packages with dependencies, only .NET Framework" Condition=" '$([MSBuild]::GetTargetFrameworkIdentifier(`$(TargetFramework)`))' == '.NETFramework' ">
<PackageReference Include="OpenTelemetry.Instrumentation.AspNet" Version="1.12.0-beta.1" />
<PackageReference Include="OpenTelemetry.Instrumentation.Owin" Version="1.12.0-beta.1" />
</ItemGroup>

<ItemGroup>
Expand Down
Loading