Skip to content

Commit 335825d

Browse files
Update OpenTelemetry package versions (#145)
- Update OpenTelemetry (and test) NuGet packages to their latest versions. - Add db.client.operation.duration assertion - Use `GetTargetFrameworkIdentifier()` intrinsic for conditions. - Use `Label` attribute instead of comments. - Allow duplicate spans called `main` to account for database creation and then the query. - Enable SqlClient metrics that became opt-in in 1.10.0-beta.1 and changed name. - Add CHANGELOG entries for this pull request. - Resolve https://github.com/grafana/grafana-opentelemetry-dotnet/security/code-scanning/26. --------- Co-authored-by: Matt Hensley <[email protected]>
1 parent 4fdc14b commit 335825d

File tree

7 files changed

+275
-63
lines changed

7 files changed

+275
-63
lines changed

CHANGELOG.md

Lines changed: 227 additions & 4 deletions
Large diffs are not rendered by default.

docker/docker-compose-aspnetcore/oats.yaml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ expected:
1414
contains:
1515
- 'Application started'
1616
metrics:
17+
- promql: db_client_operation_duration_seconds_count{}
18+
value: '>= 0'
1719
- promql: http_client_request_duration_seconds_count{}
1820
value: '>= 1'
1921
- promql: http_client_request_duration_seconds_count{http_request_method="GET", http_response_status_code="200"}
@@ -74,14 +76,16 @@ expected:
7476
attributes:
7577
db.statement: LPUSH
7678
db.system: redis
77-
net.peer.name: redis
79+
db.redis.database_index: '0'
80+
server.address: redis
7881
- traceql: '{ span.http.route =~ "/api/todo/items/" }'
7982
spans:
8083
- name: 'main'
84+
allow-duplicates: true
8185
attributes:
8286
db.system: sqlite
8387
db.name: main
84-
peer.service: /app/App_Data/TodoApp.db
88+
server.address: /app/App_Data/TodoApp.db
8589
otel.library.name: OpenTelemetry.Instrumentation.EntityFrameworkCore
8690
- traceql: '{ span.http.route =~ "api/Aws/ListBuckets" }'
8791
spans:

examples/net8.0/aspnetcore/aspnetcore.csproj

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,10 @@
1010
</PropertyGroup>
1111

1212
<ItemGroup>
13-
<PackageReference Include="AWSSDK.S3" Version="3.7.418.2" />
14-
<PackageReference Include="Microsoft.Data.SqlClient" Version="6.0.2" />
13+
<PackageReference Include="AWSSDK.S3" Version="4.0.6.2" />
14+
<PackageReference Include="Microsoft.Data.SqlClient" Version="6.1.0" />
1515
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="8.0.17" />
1616
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.20.1" />
17-
<PackageReference Include="OpenTelemetry.Extensions.Hosting" Version="1.12.0" />
1817
<PackageReference Include="OpenTelemetry.Exporter.Console" Version="1.12.0" />
1918
<PackageReference Include="Swashbuckle.AspNetCore" Version="9.0.3" />
2019
</ItemGroup>

src/Grafana.OpenTelemetry.Base/Grafana.OpenTelemetry.Base.csproj

Lines changed: 14 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -7,41 +7,30 @@
77
</PropertyGroup>
88

99
<ItemGroup>
10-
<PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
1110
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="8.0.0" />
12-
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.1" />
1311
<PackageReference Include="System.Text.Json" Version="8.0.6" Condition="!$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net8.0'))" />
1412
<PackageReference Include="MinVer" Version="6.0.0">
1513
<PrivateAssets>all</PrivateAssets>
1614
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1715
</PackageReference>
18-
<PackageReference Include="OpenTelemetry" Version="1.9.0" />
19-
<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.9.0" />
16+
<PackageReference Include="OpenTelemetry" Version="1.12.0" />
17+
<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.12.0" />
2018
</ItemGroup>
2119

22-
<!-- Stable instrumentation packages -->
23-
<ItemGroup>
24-
<PackageReference Include="OpenTelemetry.Instrumentation.Runtime" Version="1.9.0" />
25-
</ItemGroup>
26-
27-
<!-- Non-stable instrumentation packages with no dependencies -->
28-
<ItemGroup>
29-
<PackageReference Include="OpenTelemetry.Instrumentation.GrpcNetClient" Version="1.9.0-beta.1" />
30-
<PackageReference Include="OpenTelemetry.Instrumentation.Http" Version="1.9.0" />
31-
<PackageReference Include="OpenTelemetry.Instrumentation.Process" Version="0.5.0-beta.7" />
32-
<PackageReference Include="OpenTelemetry.Instrumentation.SqlClient" Version="1.9.0-beta.1" />
33-
</ItemGroup>
34-
35-
<!-- Non-stable instrumentation packages with no dependencies, non netstandard2.0 -->
36-
<ItemGroup Condition=" '$(TargetFramework)' != 'netstandard2.0' ">
37-
<PackageReference Include="OpenTelemetry.Resources.Host" Version="0.1.0-beta.3" />
38-
<PackageReference Include="OpenTelemetry.Resources.OperatingSystem" Version="0.1.0-alpha.4" />
39-
<PackageReference Include="OpenTelemetry.Resources.Process" Version="0.1.0-beta.3" />
40-
<PackageReference Include="OpenTelemetry.Resources.ProcessRuntime" Version="0.1.0-beta.2" />
20+
<ItemGroup Label="Stable Instrumentation Packages">
21+
<PackageReference Include="OpenTelemetry.Instrumentation.Http" Version="1.12.0" />
22+
<PackageReference Include="OpenTelemetry.Instrumentation.Runtime" Version="1.12.0" />
4123
</ItemGroup>
4224

43-
<ItemGroup Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net8.0'))">
44-
<PackageReference Include="OpenTelemetry.Resources.Container" Version="1.0.0-beta.9" />
25+
<ItemGroup Label="Non-stable instrumentation packages">
26+
<PackageReference Include="OpenTelemetry.Instrumentation.GrpcNetClient" Version="1.12.0-beta.1" />
27+
<PackageReference Include="OpenTelemetry.Instrumentation.Process" Version="1.12.0-beta.1" />
28+
<PackageReference Include="OpenTelemetry.Instrumentation.SqlClient" Version="1.12.0-beta.2" />
29+
<PackageReference Include="OpenTelemetry.Resources.Container" Version="1.12.0-beta.1" />
30+
<PackageReference Include="OpenTelemetry.Resources.Host" Version="1.12.0-beta.1" />
31+
<PackageReference Include="OpenTelemetry.Resources.OperatingSystem" Version="1.12.0-beta.1" />
32+
<PackageReference Include="OpenTelemetry.Resources.Process" Version="1.12.0-beta.1" />
33+
<PackageReference Include="OpenTelemetry.Resources.ProcessRuntime" Version="1.12.0-beta.1" />
4534
</ItemGroup>
4635

4736
<ItemGroup>

src/Grafana.OpenTelemetry.Base/GrafanaOpenTelemetryEventSource.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ namespace Grafana.OpenTelemetry
1616
[EventSource(Name = "OpenTelemetry-Grafana-Distribution")]
1717
internal sealed partial class GrafanaOpenTelemetryEventSource : EventSource
1818
{
19-
public static GrafanaOpenTelemetryEventSource Log = new GrafanaOpenTelemetryEventSource();
19+
public static readonly GrafanaOpenTelemetryEventSource Log = new GrafanaOpenTelemetryEventSource();
2020

2121
[NonEvent]
2222
public void EnabledMetricsInstrumentation(string instrumentationLibrary)

src/Grafana.OpenTelemetry.Base/Instrumentations/SqlClientInitializer.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
// SPDX-License-Identifier: Apache-2.0
44
//
55

6+
using OpenTelemetry.Metrics;
67
using OpenTelemetry.Trace;
78

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

18+
protected override void InitializeMetrics(MeterProviderBuilder builder)
19+
{
20+
builder.AddSqlClientInstrumentation();
21+
}
22+
1723
protected override void InitializeTracing(TracerProviderBuilder builder)
1824
{
1925
builder.AddSqlClientInstrumentation();

src/Grafana.OpenTelemetry/Grafana.OpenTelemetry.csproj

Lines changed: 19 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -16,49 +16,40 @@
1616

1717
<ItemGroup>
1818
<ProjectReference Include="../Grafana.OpenTelemetry.Base/Grafana.OpenTelemetry.Base.csproj" />
19-
<PackageReference Include="MinVer" Version="6.0.0">
20-
<PrivateAssets>all</PrivateAssets>
21-
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
22-
</PackageReference>
19+
<PackageReference Include="MinVer" Version="6.0.0" PrivateAssets="all" />
2320
</ItemGroup>
2421

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

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

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

49-
<!-- Non-stable instrumentation packages with dependencies, only .NET -->
50-
<ItemGroup Condition=" '$(TargetFramework)' != 'net462' ">
51-
<PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.9.0" />
52-
</ItemGroup>
53-
54-
<!-- Non-stable instrumentation packages with dependencies, only .NET framework -->
55-
<ItemGroup Condition=" '$(TargetFramework)' == 'net462' ">
56-
<PackageReference Include="OpenTelemetry.Instrumentation.AspNet" Version="1.9.0-beta.1" />
57-
<PackageReference Include="OpenTelemetry.Instrumentation.Owin" Version="1.0.0-rc.6" />
40+
<ItemGroup Label="Non-stable instrumentation packages with dependencies">
41+
<PackageReference Include="OpenTelemetry.Instrumentation.Cassandra" Version="1.0.0-beta.2" />
42+
<PackageReference Include="OpenTelemetry.Instrumentation.ElasticsearchClient" Version="1.0.0-beta.5" />
43+
<PackageReference Include="OpenTelemetry.Instrumentation.EntityFrameworkCore" Version="1.12.0-beta.2" />
44+
<PackageReference Include="OpenTelemetry.Instrumentation.Hangfire" Version="1.12.0-beta.1" />
45+
<PackageReference Include="OpenTelemetry.Instrumentation.Quartz" Version="1.12.0-beta.1" />
46+
<PackageReference Include="OpenTelemetry.Instrumentation.StackExchangeRedis" Version="1.12.0-beta.2" />
47+
<PackageReference Include="OpenTelemetry.Instrumentation.Wcf" Version="1.12.0-beta.1" />
5848
</ItemGroup>
5949

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

6455
<ItemGroup>

0 commit comments

Comments
 (0)