Skip to content

Commit be8dbbe

Browse files
authored
Fix missing resource attributes (#251)
It also renames a few types and marks the processor extensions internal for now.
1 parent 83d2a54 commit be8dbbe

File tree

10 files changed

+50
-44
lines changed

10 files changed

+50
-44
lines changed

examples/Example.AspNetCore.Mvc/appsettings.json

+6-6
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@
1111
}
1212
},
1313
"AllowedHosts": "*",
14-
"Elastic": {
15-
"OpenTelemetry": {
16-
"LogLevel": "Trace",
17-
"LogDirectory": "C:\\Logs\\BrandNewLogs"
18-
}
19-
}
14+
//"Elastic": {
15+
// "OpenTelemetry": {
16+
// "LogLevel": "Trace",
17+
// "LogDirectory": "C:\\Logs\\BrandNewLogs"
18+
// }
19+
//}
2020
}

examples/Example.Console/Example.Console.csproj

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
</PropertyGroup>
99

1010
<ItemGroup>
11+
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="9.0.3" />
1112
<PackageReference Include="OpenTelemetry.Exporter.Console" Version="1.11.1" />
1213
<PackageReference Include="OpenTelemetry.Instrumentation.StackExchangeRedis" Version="1.9.0-beta.1" />
1314
</ItemGroup>

examples/Example.Console/Program.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
Console.WriteLine("Starting sample application.");
88

9-
await Usage.BasicBuilderUsageAsync();
9+
Usage.BasicBuilderUsage();
1010

1111
//await Usage.ComplexUsageAsync();
1212

examples/Example.Console/Usage.cs

+30-25
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,15 @@
22
// Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
33
// See the LICENSE file in the project root for more information
44

5-
using System.Diagnostics;
5+
using Elastic.OpenTelemetry;
6+
using Microsoft.Extensions.Logging;
67
using OpenTelemetry;
7-
using OpenTelemetry.Resources;
8-
using OpenTelemetry.Trace;
98

109
namespace Example.Console;
1110

1211
internal static class Usage
1312
{
14-
private const string ActivitySourceName = "CustomActivitySource";
15-
private static readonly ActivitySource ActivitySource = new(ActivitySourceName, "1.0.0");
16-
private static readonly HttpClient HttpClient = new();
17-
18-
public static async Task BasicBuilderUsageAsync()
13+
public static void BasicBuilderUsage()
1914
{
2015
// NOTE: This sample assumes ENV VARs have been set to configure the Endpoint and Authorization header.
2116

@@ -48,10 +43,20 @@ public static async Task BasicBuilderUsageAsync()
4843
// .AddConsoleExporter())
4944
// .Build();
5045

46+
using var loggerFactory = LoggerFactory.Create(static builder =>
47+
{
48+
builder
49+
.AddFilter("Elastic.OpenTelemetry", LogLevel.Debug)
50+
.AddConsole();
51+
});
52+
53+
var options = new ElasticOpenTelemetryOptions
54+
{
55+
AdditionalLoggerFactory = loggerFactory
56+
};
57+
5158
using var sdk = OpenTelemetrySdk.Create(builder => builder
52-
.WithElasticDefaults()
53-
.ConfigureResource(resource => resource
54-
.AddService("MyCustomServiceName")));
59+
.WithElasticDefaults(options));
5560

5661
//This is the most flexible approach for a consumer as they can include our processor(s)
5762
//using var tracerProvider = Sdk.CreateTracerProviderBuilder()
@@ -62,23 +67,23 @@ public static async Task BasicBuilderUsageAsync()
6267
// serviceVersion: "1.0.0"))
6368
// .AddConsoleExporter()
6469
// .AddElasticProcessors()
65-
// .Build();
70+
//// .Build();
6671

67-
await DoStuffAsync();
72+
//await DoStuffAsync();
6873

69-
static async Task DoStuffAsync()
70-
{
71-
using var activity = ActivitySource.StartActivity("DoingStuff", ActivityKind.Internal);
72-
activity?.SetTag("CustomTag", "TagValue");
74+
//static async Task DoStuffAsync()
75+
//{
76+
// using var activity = ActivitySource.StartActivity("DoingStuff", ActivityKind.Internal);
77+
// activity?.SetTag("CustomTag", "TagValue");
7378

74-
await Task.Delay(100);
75-
var response = await HttpClient.GetAsync("http://elastic.co");
76-
await Task.Delay(50);
79+
// await Task.Delay(100);
80+
// var response = await HttpClient.GetAsync("http://elastic.co");
81+
// await Task.Delay(50);
7782

78-
if (response.StatusCode == System.Net.HttpStatusCode.OK)
79-
activity?.SetStatus(ActivityStatusCode.Ok);
80-
else
81-
activity?.SetStatus(ActivityStatusCode.Error);
82-
}
83+
// if (response.StatusCode == System.Net.HttpStatusCode.OK)
84+
// activity?.SetStatus(ActivityStatusCode.Ok);
85+
// else
86+
// activity?.SetStatus(ActivityStatusCode.Error);
87+
//}
8388
}
8489
}

src/Elastic.OpenTelemetry.AutoInstrumentation/AutoInstrumentationPlugin.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ public TracerProviderBuilder BeforeConfigureTracerProvider(TracerProviderBuilder
4444

4545
builder.ConfigureServices(sc => sc.Configure<OtlpExporterOptions>(OtlpExporterDefaults.OtlpExporterOptions));
4646

47-
CoreTracerProvderBuilderExtensions.AddActivitySourceWithLogging(builder, logger, "Elastic.Transport", "<n/a>");
48-
CoreTracerProvderBuilderExtensions.AddElasticProcessorsCore(builder, null, _components, null);
47+
TracerProvderBuilderExtensions.AddActivitySourceWithLogging(builder, logger, "Elastic.Transport", "<n/a>");
48+
TracerProvderBuilderExtensions.AddElasticProcessorsCore(builder, null, _components, null);
4949

5050
logger.LogConfiguredSignalProvider("Traces", nameof(TracerProviderBuilder), "<n/a>");
5151

src/Elastic.OpenTelemetry.Core/Extensions/ResourceBuilderExtensions.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ internal static ResourceBuilder WithElasticDefaultsCore(
3333
Action<ResourceBuilder, BuilderState>? configure) =>
3434
WithElasticDefaultsCore(builder, builderState.Components, services, configure);
3535

36-
internal static ResourceBuilder WithElasticDefaultsCore
37-
(this ResourceBuilder builder,
36+
internal static ResourceBuilder WithElasticDefaultsCore(
37+
this ResourceBuilder builder,
3838
ElasticOpenTelemetryComponents components,
3939
IServiceCollection? services,
4040
Action<ResourceBuilder, BuilderState>? configure)

src/Elastic.OpenTelemetry.Core/Extensions/TracerProvderBuilderExtensions.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ namespace OpenTelemetry.Trace;
2121
/// Provides extension methods on the <see cref="TracerProviderBuilder"/> used to register
2222
/// the Elastic Distribution of OpenTelemetry (EDOT) .NET defaults.
2323
/// </summary>
24-
public static class CoreTracerProvderBuilderExtensions
24+
internal static class TracerProvderBuilderExtensions
2525
{
2626
private static int AddElasticProcessorsCallCount;
2727

src/Elastic.OpenTelemetry.Core/SignalBuilder.cs

+2-3
Original file line numberDiff line numberDiff line change
@@ -143,12 +143,11 @@ public static T WithElasticDefaults<T>(
143143
components = ElasticOpenTelemetry.Bootstrap(options, services);
144144
builderState = new BuilderState(components, instanceId);
145145

146-
components.Logger.LogStoringBuilderState(providerBuilderName, instanceId);
146+
configure(builder, builderState, services);
147147

148+
components.Logger.LogStoringBuilderState(providerBuilderName, instanceId);
148149
BuilderStateTable.Add(builder, builderState);
149150
}
150-
151-
configure(builder, builderState, services);
152151
}
153152
catch (Exception ex)
154153
{

src/Elastic.OpenTelemetry/Extensions/ResourceBuilderExtensions.cs

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using Elastic.OpenTelemetry.Core;
77
using Elastic.OpenTelemetry.Diagnostics;
88
using Elastic.OpenTelemetry.Instrumentation;
9+
using Elastic.OpenTelemetry.Resources;
910
using Microsoft.Extensions.DependencyInjection;
1011

1112
#if NET
@@ -38,7 +39,7 @@ internal static ResourceBuilder WithElasticDefaults(this ResourceBuilder builder
3839

3940
components.Logger.LogWithElasticDefaultsCallCount(callCount, nameof(ResourceBuilder));
4041

41-
return SignalBuilder.WithElasticDefaults(builder, components.Options, components, services, (b, bs, _) => ConfigureBuilder(b, bs));
42+
return builder.WithElasticDefaultsCore(components, services, ConfigureBuilder);
4243
}
4344

4445
[UnconditionalSuppressMessage("ReflectionAnalysis", "IL2026", Justification = "The call to `AssemblyScanning.AddInstrumentationViaReflection` " +

src/Elastic.OpenTelemetry/Extensions/TracerProviderBuilderExtensions.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -164,14 +164,14 @@ private static void ConfigureBuilder(TracerProviderBuilder builder, BuilderState
164164
}
165165
else
166166
{
167-
CoreTracerProvderBuilderExtensions.AddActivitySourceWithLogging(builder, logger, "System.Net.Http", builderState.InstanceIdentifier);
167+
TracerProvderBuilderExtensions.AddActivitySourceWithLogging(builder, logger, "System.Net.Http", builderState.InstanceIdentifier);
168168
}
169169
#else
170170
AddWithLogging(builder, logger, "HTTP", b => b.AddHttpClientInstrumentation(), builderState.InstanceIdentifier);
171171
#endif
172172

173173
AddWithLogging(builder, logger, "GrpcClient", b => b.AddGrpcClientInstrumentation(), builderState.InstanceIdentifier);
174-
CoreTracerProvderBuilderExtensions.AddActivitySourceWithLogging(builder, logger, "Elastic.Transport", builderState.InstanceIdentifier);
174+
TracerProvderBuilderExtensions.AddActivitySourceWithLogging(builder, logger, "Elastic.Transport", builderState.InstanceIdentifier);
175175

176176
// NOTE: Despite them having no dependencies. We cannot add the OpenTelemetry.Instrumentation.ElasticsearchClient or
177177
// OpenTelemetry.Instrumentation.EntityFrameworkCore instrumentations here, as including the package references causes
@@ -186,7 +186,7 @@ private static void ConfigureBuilder(TracerProviderBuilder builder, BuilderState
186186
SignalBuilder.AddInstrumentationViaReflection(builder, components, ContribTraceInstrumentation.GetReflectionInstrumentationAssemblies(), builderState.InstanceIdentifier);
187187
}
188188

189-
CoreTracerProvderBuilderExtensions.AddElasticProcessorsCore(builder, builderState, null, services);
189+
TracerProvderBuilderExtensions.AddElasticProcessorsCore(builder, builderState, null, services);
190190

191191
if (components.Options.SkipOtlpExporter)
192192
{

0 commit comments

Comments
 (0)