private async Task AssertExpectedLineProtocolString(MetricsDataValueSource dataValueSource, TimeSpan flushInterval, string expected) { var settings = new DatadogOptions(); var serializer = new MetricSnapshotSerializer(); var fields = new MetricFields(); await using var ms = new MemoryStream(); await using (var packer = new MetricSnapshotDatadogJsonWriter(ms, flushInterval)) { serializer.Serialize(packer, dataValueSource, fields); } Encoding.UTF8.GetString(ms.ToArray()).Should().Be(expected); }
public DefaultDatadogHttpClient( HttpClient client, DatadogOptions options, HttpPolicy httpPolicy) { if (httpPolicy == null) { throw new ArgumentNullException(nameof(httpPolicy)); } _client = client ?? throw new ArgumentNullException(nameof(client)); _options = options ?? throw new ArgumentNullException(nameof(options)); _backOffPeriod = httpPolicy.BackoffPeriod; _failuresBeforeBackoff = httpPolicy.FailuresBeforeBackoff; _failureAttempts = 0; }
public static void ConfigureLogging(IConfiguration configuration) { lock (_lock) { LoggerConfiguration config = new LoggerConfiguration(); // load from config if section exists if (configuration.GetSection(_sectionName).Exists()) { config.ReadFrom.Configuration(configuration, _sectionName); // configure datadog DatadogOptions ddOptions = configuration.GetSection(_sectionName).GetSection("DataDog").Get <DatadogOptions>(); if (!string.IsNullOrWhiteSpace(ddOptions?.ApiKey)) { config.WriteTo.DatadogLogs( ddOptions.ApiKey, source: ".NET", service: ddOptions.ServiceName ?? "WsbcDiscordBot", host: ddOptions.HostName ?? Environment.MachineName, new string[] { }, ddOptions.ToDatadogConfiguration(), // no need for debug logs in datadag logLevel: ddOptions.OverrideLogLevel ?? LogEventLevel.Information ); } } // otherwise use defaults else { config.WriteTo.Console() .MinimumLevel.Is(Debugger.IsAttached ? LogEventLevel.Verbose : LogEventLevel.Information) .Enrich.FromLogContext(); } // create the logger Serilog.Log.Logger = config.CreateLogger(); // enable logging of unhandled exceptions, but only when initializing for the first time if (!_initialized) { AppDomain.CurrentDomain.UnhandledException += OnUnhandledException; } _initialized = true; } }
private static void ConfigureSerilog(HostBuilderContext context, LoggerConfiguration config) { config.ReadFrom.Configuration(context.Configuration); DatadogOptions ddOptions = context.Configuration.GetSection("Serilog")?.GetSection("DataDog")?.Get <DatadogOptions>(); if (ddOptions != null) { config.WriteTo.DatadogLogs( ddOptions.ApiKey, source: ".NET", service: ddOptions.ServiceName ?? "WolfBots-Size", host: ddOptions.HostName ?? Environment.MachineName, new string[] { $"env:{(ddOptions.EnvironmentName ?? context.HostingEnvironment.EnvironmentName)}", $"assembly:{(ddOptions.AssemblyName ?? context.HostingEnvironment.ApplicationName)}" }, ddOptions.ToDatadogConfiguration(), // no need for debug logs in datadag logLevel: ddOptions.OverrideLogLevel ?? LogEventLevel.Verbose ); } }
public static void ConfigureSerilog(HostBuilderContext context, LoggerConfiguration config) { config.ReadFrom.Configuration(context.Configuration) .Enrich.FromLogContext(); DatadogOptions ddOptions = context.Configuration.GetSection("Serilog")?.GetSection("DataDog")?.Get <DatadogOptions>(); if (!string.IsNullOrWhiteSpace(ddOptions?.ApiKey)) { config.WriteTo.DatadogLogs( ddOptions.ApiKey, source: ".NET", service: ddOptions.ServiceName ?? "Einherji", host: ddOptions.HostName ?? Environment.MachineName, new string[] { $"env:{(ddOptions.EnvironmentName ?? context.HostingEnvironment.EnvironmentName)}", $"assembly:{(ddOptions.AssemblyName ?? context.HostingEnvironment.ApplicationName)}" }, ddOptions.ToDatadogConfiguration(), // no need for debug logs in datadag logLevel: ddOptions.OverrideLogLevel ?? LogEventLevel.Information ); } }