Skip to content

Commit aef789d

Browse files
committed
answer to comments #2
1 parent b9dad0a commit aef789d

File tree

8 files changed

+30
-43
lines changed

8 files changed

+30
-43
lines changed

tracer/src/Datadog.Trace/Ci/Configuration/TestOptimizationSettings.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
using Datadog.Trace.Configuration;
1313
using Datadog.Trace.Configuration.ConfigurationSources.Telemetry;
1414
using Datadog.Trace.Configuration.Telemetry;
15+
using Datadog.Trace.LibDatadog;
1516
using Datadog.Trace.Telemetry;
1617
using Datadog.Trace.Util;
1718

@@ -345,10 +346,10 @@ internal void SetDefaultManualInstrumentationSettings()
345346
}
346347

347348
private TracerSettings InitializeTracerSettings()
348-
=> InitializeTracerSettings(GlobalConfigurationSource.CreateDefaultConfigurationSource().ConfigurationSource);
349+
=> InitializeTracerSettings(GlobalConfigurationSource.Instance);
349350

350351
// Internal for testing
351-
internal TracerSettings InitializeTracerSettings(CompositeConfigurationSource source)
352+
internal TracerSettings InitializeTracerSettings(IConfigurationSource source)
352353
{
353354
// This is a somewhat hacky way to "tell" TracerSettings that we're running in CI Visibility
354355
// There's no doubt various other ways we could flag it based on values we're _already_ extracting,
@@ -368,7 +369,7 @@ internal TracerSettings InitializeTracerSettings(CompositeConfigurationSource so
368369
}
369370

370371
var newSource = new CompositeConfigurationSource([new DictionaryObjectConfigurationSource(additionalSource), source]);
371-
return new TracerSettings(newSource, telemetry, new OverrideErrorLog());
372+
return new TracerSettings(newSource, telemetry, new OverrideErrorLog(), new LibDatadogAvailableResult(false));
372373
}
373374
}
374375
}

tracer/src/Datadog.Trace/Configuration/ConfigurationSources/GlobalConfigurationSource.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
using System.IO;
1111
using Datadog.Trace.Configuration.ConfigurationSources;
1212
using Datadog.Trace.Configuration.Telemetry;
13-
using Datadog.Trace.LibDatadog;
1413
using Datadog.Trace.LibDatadog.HandsOffConfiguration;
1514
using Datadog.Trace.Telemetry;
1615

@@ -35,13 +34,15 @@ internal static IConfigurationSource Instance
3534
return _instance;
3635
}
3736

38-
var result = CreateDefaultConfigurationSource();
39-
_instance = result.ConfigurationSource;
37+
CreationResult = CreateDefaultConfigurationSource();
38+
_instance = CreationResult.ConfigurationSource;
4039

4140
return _instance;
4241
}
4342
}
4443

44+
internal static GlobalConfigurationSourceResult CreationResult { get; private set; }
45+
4546
/// <summary>
4647
/// Creates a <see cref="IConfigurationSource"/> by combining environment variables,
4748
/// Precedence is as follows:

tracer/src/Datadog.Trace/LibDatadog/CString.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ internal CString(string? str)
4747
}
4848
}
4949

50-
public string ToUtf8String() => NativeStringHelper.GetString(Ptr, Length);
50+
public unsafe string ToUtf8String() => StringEncoding.UTF8.GetString((byte*)Ptr, (int)Length);
5151

5252
public void Dispose()
5353
{

tracer/src/Datadog.Trace/LibDatadog/ServiceDiscovery/ServiceDiscoveryHelper.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,6 @@ internal static StoreMetadataResult StoreTracerMetadata(TracerSettings tracerSet
6161
"Skipping storage of tracer metadata with LibDatadog: Platform supported: {PlatformIsSupported}, Deployment supported: {DeploymentIsSupported}",
6262
platformIsSupported,
6363
deploymentIsSupported);
64-
if (deploymentIsSupported.Exception is not null)
65-
{
66-
Log.Warning(deploymentIsSupported.Exception, "An exception happened when trying to see if libdatadog was available");
67-
}
6864

6965
return StoreMetadataResult.Skipped;
7066
}

tracer/src/Datadog.Trace/Logging/Internal/DatadogLoggingFactory.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ private static ConsoleLoggingConfiguration GetConsoleLoggingConfiguration(IConfi
166166

167167
// Internal for testing
168168
internal static string GetLogDirectory(IConfigurationTelemetry telemetry)
169-
=> GetLogDirectory(GlobalConfigurationSource.CreateDefaultConfigurationSource().ConfigurationSource, telemetry);
169+
=> GetLogDirectory(GlobalConfigurationSource.Instance, telemetry);
170170

171171
private static string GetLogDirectory(IConfigurationSource source, IConfigurationTelemetry telemetry)
172172
{

tracer/src/Datadog.Trace/TracerManagerFactory.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,13 @@
1111
using Datadog.Trace.AppSec;
1212
using Datadog.Trace.ClrProfiler;
1313
using Datadog.Trace.Configuration;
14+
using Datadog.Trace.Configuration.ConfigurationSources;
1415
using Datadog.Trace.ContinuousProfiler;
1516
using Datadog.Trace.DataStreamsMonitoring;
1617
using Datadog.Trace.DogStatsd;
1718
using Datadog.Trace.Iast;
1819
using Datadog.Trace.LibDatadog;
20+
using Datadog.Trace.LibDatadog.HandsOffConfiguration;
1921
using Datadog.Trace.Logging;
2022
using Datadog.Trace.Logging.DirectSubmission;
2123
using Datadog.Trace.Logging.TracerFlare;
@@ -107,6 +109,17 @@ internal TracerManager CreateTracerManager(
107109
ISpanEventsManager spanEventsManager)
108110
{
109111
settings ??= TracerSettings.FromDefaultSourcesInternal();
112+
var result = GlobalConfigurationSource.CreationResult;
113+
if (result.Result is not Result.Success)
114+
{
115+
Log.Warning(result.Exception, "Failed to create the global configuration source with status: {Status} and error message: {ErrorMessage}", result.Result.ToString(), result.ErrorMessage);
116+
}
117+
118+
var libdatadogAvailaibility = LibDatadogAvailaibilityHelper.IsLibDatadogAvailable;
119+
if (libdatadogAvailaibility.Exception is not null)
120+
{
121+
Log.Warning(libdatadogAvailaibility.Exception, "An exception happened when trying to see if libdatadog was available");
122+
}
110123

111124
var defaultServiceName = settings.ServiceName ??
112125
GetApplicationName(settings) ??

tracer/src/Datadog.Trace/Util/NativeStringHelper.cs

Lines changed: 0 additions & 24 deletions
This file was deleted.

tracer/test/Datadog.Trace.Tests/Configuration/TestOptimizationSettingsTests.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ public void AddsUserProvidedTestServiceTagToGlobalTags(string serviceName, strin
197197
var source = CreateConfigurationSource((ConfigurationKeys.ServiceName, serviceName));
198198

199199
var ciVisSettings = new TestOptimizationSettings(source, NullConfigurationTelemetry.Instance);
200-
var tracerSettings = ciVisSettings.InitializeTracerSettings([source]);
200+
var tracerSettings = ciVisSettings.InitializeTracerSettings(source);
201201

202202
tracerSettings.GlobalTags.Should()
203203
.ContainKey(Datadog.Trace.Ci.Tags.CommonTags.UserProvidedTestServiceTag)
@@ -214,7 +214,7 @@ public void ServiceNameIsNormalized()
214214
var source = CreateConfigurationSource((ConfigurationKeys.ServiceName, originalName));
215215

216216
var ciVisSettings = new TestOptimizationSettings(source, NullConfigurationTelemetry.Instance);
217-
var tracerSettings = ciVisSettings.InitializeTracerSettings([source]);
217+
var tracerSettings = ciVisSettings.InitializeTracerSettings(source);
218218

219219
tracerSettings.ServiceName.Should().Be(normalizedName);
220220
}
@@ -225,7 +225,7 @@ public void AddsFakeSessionToExcludedHttpClientUrls()
225225
var source = CreateConfigurationSource();
226226

227227
var ciVisSettings = new TestOptimizationSettings(source, NullConfigurationTelemetry.Instance);
228-
var tracerSettings = ciVisSettings.InitializeTracerSettings([source]);
228+
var tracerSettings = ciVisSettings.InitializeTracerSettings(source);
229229

230230
tracerSettings.HttpClientExcludedUrlSubstrings
231231
.Should()
@@ -239,7 +239,7 @@ public void AddsFakeSessionToExcludedHttpClientUrls_WhenUrlsAlreadyExist()
239239
(ConfigurationKeys.HttpClientExcludedUrlSubstrings, "/some-url/path"));
240240

241241
var ciVisSettings = new TestOptimizationSettings(source, NullConfigurationTelemetry.Instance);
242-
var tracerSettings = ciVisSettings.InitializeTracerSettings([source]);
242+
var tracerSettings = ciVisSettings.InitializeTracerSettings(source);
243243

244244
tracerSettings.HttpClientExcludedUrlSubstrings
245245
.Should()
@@ -254,7 +254,7 @@ public void AddsFakeSessionToExcludedHttpClientUrls_WhenRunningInAas()
254254
(ConfigurationKeys.HttpClientExcludedUrlSubstrings, "/some-url/path"));
255255

256256
var ciVisSettings = new TestOptimizationSettings(source, NullConfigurationTelemetry.Instance);
257-
var tracerSettings = ciVisSettings.InitializeTracerSettings([source]);
257+
var tracerSettings = ciVisSettings.InitializeTracerSettings(source);
258258

259259
tracerSettings.HttpClientExcludedUrlSubstrings
260260
.Should()
@@ -268,7 +268,7 @@ public void WhenLogsEnabled_AddsDirectSubmission()
268268
(ConfigurationKeys.CIVisibility.Logs, "true"));
269269

270270
var ciVisSettings = new TestOptimizationSettings(source, NullConfigurationTelemetry.Instance);
271-
var tracerSettings = ciVisSettings.InitializeTracerSettings([source]);
271+
var tracerSettings = ciVisSettings.InitializeTracerSettings(source);
272272

273273
tracerSettings.LogSubmissionSettings
274274
.EnabledIntegrationNames
@@ -283,7 +283,7 @@ public void WhenLogsNotEnabled_DoesNotAddDirectSubmission()
283283
var source = CreateConfigurationSource();
284284

285285
var ciVisSettings = new TestOptimizationSettings(source, NullConfigurationTelemetry.Instance);
286-
var tracerSettings = ciVisSettings.InitializeTracerSettings([source]);
286+
var tracerSettings = ciVisSettings.InitializeTracerSettings(source);
287287

288288
tracerSettings.LogSubmissionSettings
289289
.EnabledIntegrationNames

0 commit comments

Comments
 (0)