private async Task Initialize() { var metricClient = new MetricsQueryClient(_testEnvironment.MetricsEndpoint, _testEnvironment.Credential); var senderClient = new MetricsSenderClient( _testEnvironment.Location, _testEnvironment.MetricsIngestionEndpoint, _testEnvironment.MetricsResource, _testEnvironment.Credential, new SenderClientOptions() { Diagnostics = { IsLoggingContentEnabled = true } }); do { // Stop sending when we are past the allowed threshold if (DateTimeOffset.UtcNow - StartTime < AllowedMetricAge) { await SendData(senderClient); } await Task.Delay(TimeSpan.FromSeconds(5)); } while (!await MetricsPropagated(metricClient)); }
public async Task QueryMetrics() { #region Snippet:QueryMetrics #if SNIPPET string resourceId = "/subscriptions/<subscription_id>/resourceGroups/<resource_group_name>/providers/<resource_provider>/<resource>"; #else string resourceId = TestEnvironment.MetricsResource; #endif #region Snippet:CreateMetricsClient var metricsClient = new MetricsQueryClient(new DefaultAzureCredential()); #endregion Response <MetricsQueryResult> results = await metricsClient.QueryAsync( resourceId, new[] { "Microsoft.OperationalInsights/workspaces" } ); foreach (var metric in results.Value.Metrics) { Console.WriteLine(metric.Name); foreach (var element in metric.TimeSeries) { Console.WriteLine("Dimensions: " + string.Join(",", element.Metadata)); foreach (var metricValue in element.Data) { Console.WriteLine(metricValue); } } } #endregion }
public async Task UsesDefaultEndpoint() { var mockTransport = MockTransport.FromMessageCallback(_ => new MockResponse(200).SetContent("{}")); var client = new MetricsQueryClient(new MockCredential(), new MetricsQueryClientOptions() { Transport = mockTransport }); await client.QueryAsync("rid", new string[] {}); StringAssert.StartsWith("https://management.azure.com", mockTransport.SingleRequest.Uri.ToString()); }
protected MonitorQueryPerfTest(T options) : base(options) { LogsQueryClient = new LogsQueryClient( TestEnvironment.LogsEndpoint, TestEnvironment.Credential, ConfigureClientOptions(new LogsQueryClientOptions())); MetricsQueryClient = new MetricsQueryClient( TestEnvironment.MetricsEndpoint, TestEnvironment.Credential, ConfigureClientOptions(new MetricsQueryClientOptions()) ); }
public async Task InitializeAsync() { if (_testEnvironment.Mode == RecordedTestMode.Playback || _initialized) { return; } _initialized = true; var metricClient = new MetricsQueryClient(_testEnvironment.MetricsEndpoint, _testEnvironment.Credential); await SendData(); while (!await MetricsPropagated(metricClient)) { await Task.Delay(TimeSpan.FromSeconds(5)); } }
public async Task CanGetMetricByNameInvalid() { MetricsQueryClient client = CreateClient(); Response <MetricsQueryResult> results = await client.QueryResourceAsync( TestEnvironment.MetricsResource, new[] { _testData.MetricName }, new MetricsQueryOptions { MetricNamespace = _testData.MetricNamespace, TimeRange = new QueryTimeRange(_testData.StartTime, _testData.EndTime), Aggregations = { MetricAggregationType.Count } }); Assert.Throws <KeyNotFoundException>(() => { results.Value.GetMetricByName("Guinness"); }); }
public async Task CanGetMetricByNameNull() { MetricsQueryClient client = CreateClient(); Response <MetricsQueryResult> results = await client.QueryResourceAsync( TestEnvironment.MetricsResource, new[] { _testData.MetricName }, new MetricsQueryOptions { MetricNamespace = _testData.MetricNamespace, TimeRange = new QueryTimeRange(_testData.StartTime, _testData.EndTime), Filter = $"Name eq '{_testData.Name1}'", Aggregations = { MetricAggregationType.Count } }); Assert.Throws <ArgumentNullException>(() => { results.Value.GetMetricByName(null); }); }
public async Task CanGetMetricByName() { MetricsQueryClient client = CreateClient(); Response <MetricsQueryResult> results = await client.QueryResourceAsync( TestEnvironment.MetricsResource, new[] { _testData.MetricName }, new MetricsQueryOptions { MetricNamespace = _testData.MetricNamespace, TimeRange = new QueryTimeRange(_testData.StartTime, _testData.EndTime), Aggregations = { MetricAggregationType.Count } }); var result = results.Value.GetMetricByName(_testData.MetricName); Assert.AreEqual(result.Name, _testData.MetricName); }
public async Task UsesDefaultAuthScope(string scope, string expectedScope) { var mockTransport = MockTransport.FromMessageCallback(_ => new MockResponse(200).SetContent("{}")); Mock <MockCredential> mock = new() { CallBase = true }; string[] scopes = null; mock.Setup(m => m.GetTokenAsync(It.IsAny <TokenRequestContext>(), It.IsAny <CancellationToken>())) .Callback <TokenRequestContext, CancellationToken>((c, _) => scopes = c.Scopes) .CallBase(); var client = new MetricsQueryClient(mock.Object, new MetricsQueryClientOptions() { Transport = mockTransport, Audience = scope == null ? (MetricsQueryClientAudience?)null : new MetricsQueryClientAudience(scope) }); await client.QueryAsync("", new string[] {}); Assert.AreEqual(new[] { expectedScope }, scopes); }
public override async Task RunAsync(CancellationToken cancellationToken) { await MetricsQueryClient.QueryAsync(TestEnvironment.MetricsResource, _metrics, cancellationToken : cancellationToken); }
public override void Run(CancellationToken cancellationToken) { MetricsQueryClient.Query(TestEnvironment.MetricsResource, _metrics, cancellationToken: cancellationToken); }
public void ExposesPublicEndpoint() { var client = new MetricsQueryClient(new Uri("https://management.azure.gov"), new MockCredential(), new MetricsQueryClientOptions()); Assert.AreEqual(new Uri("https://management.azure.gov"), client.Endpoint); }