public void CloudProvider_Gcp_Should_Register_Gcp_Provider() { var providers = new CloudMetadataProviderCollection(SupportedValues.CloudProviderGcp, new NoopLogger()); providers.Count.Should().Be(1); providers.TryGetValue(SupportedValues.CloudProviderGcp, out var provider).Should().BeTrue(); provider.Should().BeOfType <GcpCloudMetadataProvider>(); }
public void DefaultCloudProvider_Registers_Aws_Gcp_Azure_Providers() { var providers = new CloudMetadataProviderCollection(DefaultValues.CloudProvider, new NoopLogger()); providers.Count.Should().Be(3); providers.TryGetValue(AwsCloudMetadataProvider.Name, out _).Should().BeTrue(); providers.TryGetValue(GcpCloudMetadataProvider.Name, out _).Should().BeTrue(); providers.TryGetValue(AzureCloudMetadataProvider.Name, out _).Should().BeTrue(); providers.Select(p => p.Provider).Should().Equal("aws", "gcp", "azure"); }
public void CloudProvider_Azure_Should_Register_Azure_Providers() { var providers = new CloudMetadataProviderCollection(SupportedValues.CloudProviderAzure, new NoopLogger()); providers.Count.Should().Be(2); providers.TryGetValue(SupportedValues.CloudProviderAzure, out var provider).Should().BeTrue(); provider.Should().BeOfType <AzureCloudMetadataProvider>(); providers.TryGetValue(AzureAppServiceMetadataProvider.Name, out provider).Should().BeTrue(); provider.Should().BeOfType <AzureAppServiceMetadataProvider>(); }
public void CloudProvider_None_Should_Not_Register_Any_Providers() { var providers = new CloudMetadataProviderCollection(SupportedValues.CloudProviderNone, new NoopLogger()); providers.Count.Should().Be(0); }
public PayloadSenderV2( IApmLogger logger, IConfigSnapshot config, Service service, Api.System system, IApmServerInfo apmServerInfo, HttpMessageHandler httpMessageHandler = null, string dbgName = null, bool isEnabled = true, IEnvironmentVariables environmentVariables = null ) : base(isEnabled, logger, ThisClassName, service, config, httpMessageHandler) { if (!isEnabled) { return; } _logger = logger?.Scoped(ThisClassName + (dbgName == null ? "" : $" (dbgName: `{dbgName}')")); _payloadItemSerializer = new PayloadItemSerializer(); _configSnapshot = config; _intakeV2EventsAbsoluteUrl = BackendCommUtils.ApmServerEndpoints.BuildIntakeV2EventsAbsoluteUrl(config.ServerUrl); System = system; _cloudMetadataProviderCollection = new CloudMetadataProviderCollection(config.CloudProvider, _logger, environmentVariables); _apmServerInfo = apmServerInfo; _metadata = new Metadata { Service = service, System = System }; foreach (var globalLabelKeyValue in config.GlobalLabels) { _metadata.Labels.Add(globalLabelKeyValue.Key, globalLabelKeyValue.Value); } if (config.MaxQueueEventCount < config.MaxBatchEventCount) { _logger?.Error() ?.Log( "MaxQueueEventCount is less than MaxBatchEventCount - using MaxBatchEventCount as MaxQueueEventCount." + " MaxQueueEventCount: {MaxQueueEventCount}." + " MaxBatchEventCount: {MaxBatchEventCount}.", config.MaxQueueEventCount, config.MaxBatchEventCount); _maxQueueEventCount = config.MaxBatchEventCount; } else { _maxQueueEventCount = config.MaxQueueEventCount; } _flushInterval = config.FlushInterval; _logger?.Debug() ?.Log( "Using the following configuration options:" + " Events intake API absolute URL: {EventsIntakeAbsoluteUrl}" + ", FlushInterval: {FlushInterval}" + ", MaxBatchEventCount: {MaxBatchEventCount}" + ", MaxQueueEventCount: {MaxQueueEventCount}" , _intakeV2EventsAbsoluteUrl, _flushInterval.ToHms(), config.MaxBatchEventCount, _maxQueueEventCount); _eventQueue = new BatchBlock <object>(config.MaxBatchEventCount); SetUpFilters(TransactionFilters, SpanFilters, ErrorFilters, apmServerInfo, logger); StartWorkLoop(); }