< Summary

Class:Azure.Identity.AzureIdentityEventSource
Assembly:Azure.Identity
File(s):C:\Git\azure-sdk-for-net\sdk\identity\Azure.Identity\src\AzureIdentityEventSource.cs
Covered lines:42
Uncovered lines:5
Coverable lines:47
Total lines:151
Line coverage:89.3% (42 of 47)
Covered branches:14
Total branches:16
Branch coverage:87.5% (14 of 16)

Metrics

MethodCyclomatic complexity Line coverage Branch coverage
.ctor()-100%100%
get_Singleton()-100%100%
GetToken(...)-100%100%
GetToken(...)-100%100%
GetTokenSucceeded(...)-100%100%
GetTokenSucceeded(...)-100%100%
GetTokenFailed(...)-100%100%
GetTokenFailed(...)-100%100%
ProbeImdsEndpoint(...)-100%100%
ProbeImdsEndpoint(...)-100%100%
ImdsEndpointFound(...)-0%0%
ImdsEndpointFound(...)-0%100%
ImdsEndpointUnavailable(...)-100%100%
ImdsEndpointUnavailable(...)-100%100%
FormatException(...)-100%100%
FormatStringArray(...)-100%100%

File(s)

C:\Git\azure-sdk-for-net\sdk\identity\Azure.Identity\src\AzureIdentityEventSource.cs

#LineLine coverage
 1// Copyright (c) Microsoft Corporation. All rights reserved.
 2// Licensed under the MIT License.
 3
 4using System;
 5using System.Diagnostics.Tracing;
 6using System.Globalization;
 7using System.Text;
 8using Azure.Core;
 9using Azure.Core.Diagnostics;
 10
 11namespace Azure.Identity
 12{
 13    [EventSource(Name = EventSourceName)]
 14    internal sealed class AzureIdentityEventSource : EventSource
 15    {
 16        private const string EventSourceName = "Azure-Identity";
 17
 18        private const int GetTokenEvent = 1;
 19        private const int GetTokenSucceededEvent = 2;
 20        private const int GetTokenFailedEvent = 3;
 21        private const int ProbeImdsEndpointEvent = 4;
 22        private const int ImdsEndpointFoundEvent = 5;
 23        private const int ImdsEndpointUnavailableEvent = 6;
 24
 425        private AzureIdentityEventSource() : base(EventSourceName, EventSourceSettings.Default, AzureEventSourceListener
 26
 278627        public static AzureIdentityEventSource Singleton { get; } = new AzureIdentityEventSource();
 28
 29        [NonEvent]
 30        public void GetToken(string method, TokenRequestContext context)
 31        {
 134632            if (IsEnabled(EventLevel.Informational, EventKeywords.All))
 33            {
 128634                GetToken(method, FormatStringArray(context.Scopes), context.ParentRequestId);
 35            }
 134636        }
 37
 38        [Event(GetTokenEvent, Level = EventLevel.Informational, Message = "{0} invoked. Scopes: {1} ParentRequestId: {2}
 39        public void GetToken(string method, string scopes, string parentRequestId)
 40        {
 128641            WriteEvent(GetTokenEvent, method, scopes, parentRequestId);
 128642        }
 43
 44        [NonEvent]
 45        public void GetTokenSucceeded(string method, TokenRequestContext context, DateTimeOffset expiresOn)
 46        {
 42847            if (IsEnabled(EventLevel.Informational, EventKeywords.All))
 48            {
 41249                GetTokenSucceeded(method, FormatStringArray(context.Scopes), context.ParentRequestId, expiresOn.ToString
 50            }
 42851        }
 52
 53        [Event(GetTokenSucceededEvent, Level = EventLevel.Informational, Message = "{0} succeeded. Scopes: {1} ParentReq
 54        public void GetTokenSucceeded(string method, string scopes, string parentRequestId, string expiresOn)
 55        {
 41256            WriteEvent(GetTokenSucceededEvent, method, scopes, parentRequestId, expiresOn);
 41257        }
 58
 59        [NonEvent]
 60        public void GetTokenFailed(string method, TokenRequestContext context, Exception ex)
 61        {
 91862            if (IsEnabled(EventLevel.Informational, EventKeywords.All))
 63            {
 87464                GetTokenFailed(method, FormatStringArray(context.Scopes), context.ParentRequestId, FormatException(ex));
 65            }
 91866        }
 67
 68        [Event(GetTokenFailedEvent, Level = EventLevel.Informational, Message = "{0} was unable to retrieve an access to
 69        public void GetTokenFailed(string method, string scopes, string parentRequestId, string exception)
 70        {
 87471            WriteEvent(GetTokenFailedEvent, method, scopes, parentRequestId, exception);
 87472        }
 73
 74        [NonEvent]
 75        public void ProbeImdsEndpoint(Uri uri)
 76        {
 2477            if (IsEnabled(EventLevel.Informational, EventKeywords.All))
 78            {
 2479                ProbeImdsEndpoint(uri.ToString());
 80            }
 2481        }
 82
 83        [Event(ProbeImdsEndpointEvent, Level = EventLevel.Informational, Message = "Probing IMDS endpoint for availabili
 84        public void ProbeImdsEndpoint(string uri)
 85        {
 2486            WriteEvent(ProbeImdsEndpointEvent, uri);
 2487        }
 88
 89        [NonEvent]
 90        public void ImdsEndpointFound(Uri uri)
 91        {
 092            if (IsEnabled(EventLevel.Informational, EventKeywords.All))
 93            {
 094                ImdsEndpointFound(uri.ToString());
 95            }
 096        }
 97
 98        [Event(ImdsEndpointFoundEvent, Level = EventLevel.Informational, Message = "IMDS endpoint is available. Endpoint
 99        public void ImdsEndpointFound(string uri)
 100        {
 0101            WriteEvent(ImdsEndpointFoundEvent, uri);
 0102        }
 103
 104        [NonEvent]
 105        public void ImdsEndpointUnavailable(Uri uri)
 106        {
 24107            if (IsEnabled(EventLevel.Informational, EventKeywords.All))
 108            {
 24109                ImdsEndpointUnavailable(uri.ToString());
 110            }
 24111        }
 112
 113        [Event(ImdsEndpointUnavailableEvent, Level = EventLevel.Informational, Message = "IMDS endpoint is did not respo
 114        public void ImdsEndpointUnavailable(string uri)
 115        {
 24116            WriteEvent(ImdsEndpointUnavailableEvent, uri);
 24117        }
 118
 119        [NonEvent]
 120        private static string FormatException(Exception ex)
 121        {
 874122            StringBuilder sb = new StringBuilder();
 874123            bool nest = false;
 124            do
 125            {
 1094126                if (nest)
 127                {
 128                    // Format how Exception.ToString() would.
 220129                    sb.AppendLine()
 220130                      .Append(" ---> ");
 131                }
 132                // Do not include StackTrace, but do include HResult (often useful for CryptographicExceptions or IOExce
 1094133                sb.Append(ex.GetType().FullName)
 1094134                  .Append(" (0x")
 1094135                  .Append(ex.HResult.ToString("x", CultureInfo.InvariantCulture))
 1094136                  .Append("): ")
 1094137                  .Append(ex.Message);
 1094138                ex = ex.InnerException;
 1094139                nest = true;
 140            }
 1094141            while (ex != null);
 874142            return sb.ToString();
 143        }
 144
 145        [NonEvent]
 146        private static string FormatStringArray(string[] array)
 147        {
 2572148            return new StringBuilder("[ ").Append(string.Join(", ", array)).Append(" ]").ToString();
 149        }
 150    }
 151}