internal async Task WriteDiagnosticLog() { string agentError = null; try { var success = await _agentWriter.Ping().ConfigureAwait(false); if (!success) { agentError = "An error occurred while sending traces to the agent"; } } catch (Exception ex) { agentError = ex.Message; } try { var frameworkDescription = FrameworkDescription.Create(); var stringWriter = new StringWriter(); using (var writer = new JsonTextWriter(stringWriter)) { writer.WriteStartObject(); writer.WritePropertyName("date"); writer.WriteValue(DateTime.Now); writer.WritePropertyName("os_name"); writer.WriteValue(frameworkDescription.OSPlatform); writer.WritePropertyName("os_version"); writer.WriteValue(Environment.OSVersion.ToString()); writer.WritePropertyName("version"); writer.WriteValue(typeof(Tracer).Assembly.GetName().Version.ToString()); writer.WritePropertyName("platform"); writer.WriteValue(frameworkDescription.ProcessArchitecture); writer.WritePropertyName("lang"); writer.WriteValue(frameworkDescription.Name); writer.WritePropertyName("lang_version"); writer.WriteValue(frameworkDescription.ProductVersion); writer.WritePropertyName("env"); writer.WriteValue(Settings.Environment); writer.WritePropertyName("enabled"); writer.WriteValue(Settings.TraceEnabled); writer.WritePropertyName("service"); writer.WriteValue(DefaultServiceName); writer.WritePropertyName("agent_url"); writer.WriteValue(Settings.AgentUri); writer.WritePropertyName("debug"); writer.WriteValue(GlobalSettings.Source.DebugEnabled); writer.WritePropertyName("analytics_enabled"); writer.WriteValue(Settings.AnalyticsEnabled); writer.WritePropertyName("sample_rate"); writer.WriteValue(Settings.GlobalSamplingRate); writer.WritePropertyName("sampling_rules"); writer.WriteValue(Settings.CustomSamplingRules); writer.WritePropertyName("tags"); writer.WriteStartArray(); foreach (var entry in Settings.GlobalTags) { writer.WriteValue(string.Concat(entry.Key, ":", entry.Value)); } writer.WriteEndArray(); writer.WritePropertyName("log_injection_enabled"); writer.WriteValue(Settings.LogsInjectionEnabled); writer.WritePropertyName("runtime_metrics_enabled"); writer.WriteValue(Settings.TracerMetricsEnabled); writer.WritePropertyName("disabled_integrations"); writer.WriteStartArray(); foreach (var integration in Settings.DisabledIntegrationNames) { writer.WriteValue(integration); } writer.WriteEndArray(); writer.WritePropertyName("netstandard_enabled"); writer.WriteValue(Settings.IsNetStandardFeatureFlagEnabled()); writer.WritePropertyName("agent_reachable"); writer.WriteValue(agentError == null); writer.WritePropertyName("agent_error"); writer.WriteValue(agentError ?? string.Empty); writer.WriteEndObject(); } Log.Information("DATADOG TRACER CONFIGURATION - {0}", stringWriter.ToString()); } catch (Exception ex) { Log.Warning(ex, "DATADOG TRACER DIAGNOSTICS - Error fetching configuration"); } }
internal async Task WriteDiagnosticLog() { string agentError = null; // In AAS, the trace agent is deployed alongside the tracer and managed by the tracer // Disable this check as it may hit the trace agent before it is ready to receive requests and give false negatives if (!AzureAppServices.Metadata.IsRelevant) { try { var success = await _agentWriter.Ping().ConfigureAwait(false); if (!success) { agentError = "An error occurred while sending traces to the agent"; } } catch (Exception ex) { agentError = ex.Message; } } try { var stringWriter = new StringWriter(); using (var writer = new JsonTextWriter(stringWriter)) { writer.WriteStartObject(); writer.WritePropertyName("date"); writer.WriteValue(DateTime.Now); writer.WritePropertyName("os_name"); writer.WriteValue(FrameworkDescription.Instance.OSPlatform); writer.WritePropertyName("os_version"); writer.WriteValue(Environment.OSVersion.ToString()); writer.WritePropertyName("version"); writer.WriteValue(TracerConstants.AssemblyVersion); writer.WritePropertyName("platform"); writer.WriteValue(FrameworkDescription.Instance.ProcessArchitecture); writer.WritePropertyName("lang"); writer.WriteValue(FrameworkDescription.Instance.Name); writer.WritePropertyName("lang_version"); writer.WriteValue(FrameworkDescription.Instance.ProductVersion); writer.WritePropertyName("env"); writer.WriteValue(Settings.Environment); writer.WritePropertyName("enabled"); writer.WriteValue(Settings.TraceEnabled); writer.WritePropertyName("service"); writer.WriteValue(DefaultServiceName); writer.WritePropertyName("agent_url"); writer.WriteValue(Settings.AgentUri); writer.WritePropertyName("debug"); writer.WriteValue(GlobalSettings.Source.DebugEnabled); writer.WritePropertyName("analytics_enabled"); writer.WriteValue(Settings.AnalyticsEnabled); writer.WritePropertyName("sample_rate"); writer.WriteValue(Settings.GlobalSamplingRate); writer.WritePropertyName("sampling_rules"); writer.WriteValue(Settings.CustomSamplingRules); writer.WritePropertyName("tags"); writer.WriteStartArray(); foreach (var entry in Settings.GlobalTags) { writer.WriteValue(string.Concat(entry.Key, ":", entry.Value)); } writer.WriteEndArray(); writer.WritePropertyName("log_injection_enabled"); writer.WriteValue(Settings.LogsInjectionEnabled); writer.WritePropertyName("runtime_metrics_enabled"); writer.WriteValue(Settings.RuntimeMetricsEnabled); writer.WritePropertyName("disabled_integrations"); writer.WriteStartArray(); foreach (var integration in Settings.DisabledIntegrationNames) { writer.WriteValue(integration); } writer.WriteEndArray(); writer.WritePropertyName("netstandard_enabled"); writer.WriteValue(Settings.IsNetStandardFeatureFlagEnabled()); writer.WritePropertyName("agent_reachable"); writer.WriteValue(agentError == null); writer.WritePropertyName("agent_error"); writer.WriteValue(agentError ?? string.Empty); writer.WriteEndObject(); } Log.Information("DATADOG TRACER CONFIGURATION - {Configuration}", stringWriter.ToString()); } catch (Exception ex) { Log.Warning(ex, "DATADOG TRACER DIAGNOSTICS - Error fetching configuration"); } }