コード例 #1
0
        // Token: 0x06001B4C RID: 6988 RVA: 0x00067418 File Offset: 0x00065618
        protected override bool InternalExecute()
        {
            if (this.datapoints == null || this.datapoints.Length == 0)
            {
                return(true);
            }
            InstrumentationSettings instrumentationSettings = this.GetInstrumentationSettings();

            if (!instrumentationSettings.IsInstrumentationEnabled())
            {
                return(true);
            }
            UserContext userContext          = this.GetUserContext();
            Stopwatch   stopwatch            = Stopwatch.StartNew();
            Datapoint   chunkHeaderDatapoint = this.GetChunkHeaderDatapoint(this.datapoints[0].Time);
            int         num;
            IDictionary <DatapointConsumer, LogDatapoint.ClientLogEventList> dictionary = this.TriageAndConvertDatapoints(userContext, chunkHeaderDatapoint, instrumentationSettings, out num);
            long elapsedMilliseconds      = stopwatch.ElapsedMilliseconds;
            IList <ClientLogEvent> events = dictionary[DatapointConsumer.Watson].Events;

            if (events.Count > 0 && instrumentationSettings.IsClientWatsonEnabled)
            {
                this.clientWatsonHandler.ReportWatsonEvents(userContext, events, chunkHeaderDatapoint, this.datapoints);
            }
            FaultInjection.GenerateFault((FaultInjection.LIDs) 3804638525U);
            stopwatch.Restart();
            this.analyticsLogger(dictionary[DatapointConsumer.Analytics].Events);
            this.diagnosticsLogger(dictionary[DatapointConsumer.Diagnostics].Events);
            long elapsedMilliseconds2 = stopwatch.ElapsedMilliseconds;
            long num2 = 0L;
            long num3 = 0L;
            int  num4 = 0;

            if (this.isOwa && dictionary[DatapointConsumer.Inference].Events.Count > 0)
            {
                stopwatch.Restart();
                IActivityLogger activityLogger = this.GetActivityLogger();
                if (activityLogger != null)
                {
                    IList <Activity> list = this.CreateInferenceActivities(dictionary[DatapointConsumer.Inference].Events);
                    num2 = stopwatch.ElapsedMilliseconds;
                    num3 = 0L;
                    if (list.Count > 0)
                    {
                        num4 = list.Count;
                        stopwatch.Restart();
                        this.WriteInferenceActivities(list, activityLogger);
                        num3 = stopwatch.ElapsedMilliseconds;
                    }
                }
            }
            base.CallContext.ProtocolLog.Set(LogDatapointMetadata.CreateDatapointEventsElapsed, elapsedMilliseconds);
            base.CallContext.ProtocolLog.Set(LogDatapointMetadata.TotalDatapointSize, num);
            base.CallContext.ProtocolLog.Set(LogDatapointMetadata.AnalyticsDatapointCount, dictionary[DatapointConsumer.Analytics].Events.Count);
            base.CallContext.ProtocolLog.Set(LogDatapointMetadata.AnalyticsDatapointSize, dictionary[DatapointConsumer.Analytics].DatapointTotalSize);
            base.CallContext.ProtocolLog.Set(LogDatapointMetadata.InferenceDatapointCount, dictionary[DatapointConsumer.Inference].Events.Count);
            base.CallContext.ProtocolLog.Set(LogDatapointMetadata.InferenceDatapointSize, dictionary[DatapointConsumer.Inference].DatapointTotalSize);
            base.CallContext.ProtocolLog.Set(LogDatapointMetadata.DiagnosticsDatapointCount, dictionary[DatapointConsumer.Diagnostics].Events.Count);
            base.CallContext.ProtocolLog.Set(LogDatapointMetadata.DiagnosticsDatapointSize, dictionary[DatapointConsumer.Diagnostics].DatapointTotalSize);
            base.CallContext.ProtocolLog.Set(LogDatapointMetadata.WatsonDatapointCount, dictionary[DatapointConsumer.Watson].Events.Count);
            base.CallContext.ProtocolLog.Set(LogDatapointMetadata.WatsonDatapointSize, dictionary[DatapointConsumer.Watson].DatapointTotalSize);
            base.CallContext.ProtocolLog.Set(LogDatapointMetadata.DatapointsToLoggerElapsed, elapsedMilliseconds2);
            base.CallContext.ProtocolLog.Set(LogDatapointMetadata.InferenceActivitiesToMailboxCount, num4);
            base.CallContext.ProtocolLog.Set(LogDatapointMetadata.CreateInferenceActivitiesElapsed, num2);
            base.CallContext.ProtocolLog.Set(LogDatapointMetadata.InferenceActivitiesToMailboxElapsed, num3);
            return(true);
        }
コード例 #2
0
        // Token: 0x06001B54 RID: 6996 RVA: 0x0006787C File Offset: 0x00065A7C
        private IDictionary <DatapointConsumer, LogDatapoint.ClientLogEventList> TriageAndConvertDatapoints(UserContext userContext, Datapoint header, InstrumentationSettings settings, out int totalDatapointSize)
        {
            string            userContextId           = this.GetUserContextId();
            string            clientAddress           = this.GetClientAddress();
            string            userName                = this.isOwa ? base.CallContext.GetEffectiveAccessingSmtpAddress() : "ExternalUser";
            string            cookieValueAndSetIfNull = ClientIdCookie.GetCookieValueAndSetIfNull(HttpContext.Current);
            ClientLogEvent    header2          = new ClientLogEvent(header, userContextId, clientAddress, userName, this.serverVersion, base.CallContext.IsMowa, cookieValueAndSetIfNull);
            DatapointConsumer enabledConsumers = this.GetEnabledConsumers(settings);

            totalDatapointSize = 0;
            LogDatapoint.ClientLogEventList clientLogEventList  = new LogDatapoint.ClientLogEventList(DatapointConsumer.Analytics, enabledConsumers, header2);
            LogDatapoint.ClientLogEventList clientLogEventList2 = new LogDatapoint.ClientLogEventList(DatapointConsumer.Diagnostics, enabledConsumers, header2);
            LogDatapoint.ClientLogEventList clientLogEventList3 = new LogDatapoint.ClientLogEventList(DatapointConsumer.Inference, enabledConsumers, null);
            LogDatapoint.ClientLogEventList clientLogEventList4 = new LogDatapoint.ClientLogEventList(DatapointConsumer.Watson, enabledConsumers, null);
            int num = 0;

            if (userContext != null && this.datapoints[0].Id == "SessionInfo")
            {
                num = 1;
                Datapoint      datapoint      = this.datapoints[0];
                ClientLogEvent clientLogEvent = new ClientLogEvent(datapoint, userContextId, clientAddress, userName, this.serverVersion, base.CallContext.IsMowa, cookieValueAndSetIfNull);
                userContext.LogEventCommonData.UpdateClientData(clientLogEvent.DatapointProperties);
                this.clientVersion = userContext.LogEventCommonData.ClientBuild;
                clientLogEvent.UpdateTenantInfo(userContext);
                clientLogEvent.UpdateNetid(userContext);
                clientLogEvent.UpdateMailboxGuid(userContext.ExchangePrincipal);
                clientLogEvent.UpdateDatabaseInfo(userContext);
                clientLogEvent.UpdateFlightInfo(userContext.LogEventCommonData);
                clientLogEvent.UpdatePassThroughProxyInfo(this.isFromPassThroughProxy);
                clientLogEvent.UpdateUserAgent(userContext.UserAgent);
                clientLogEventList.CheckAndAdd(clientLogEvent);
                clientLogEventList3.CheckAndAdd(clientLogEvent);
                clientLogEventList2.CheckAndAdd(clientLogEvent);
                clientLogEventList4.CheckAndAdd(clientLogEvent);
            }
            for (int i = num; i < this.datapoints.Length; i++)
            {
                Datapoint datapoint2 = this.datapoints[i];
                totalDatapointSize += datapoint2.Size;
                if ((enabledConsumers & datapoint2.Consumers) != DatapointConsumer.None)
                {
                    ClientLogEvent clientLogEvent2 = new ClientLogEvent(datapoint2, userContextId, clientAddress, userName, this.serverVersion, base.CallContext.IsMowa, cookieValueAndSetIfNull);
                    if (userContext != null)
                    {
                        clientLogEvent2.UpdateClientBuildVersion(userContext.LogEventCommonData);
                        string id;
                        if (clientLogEventList.CheckAndAdd(clientLogEvent2) && (id = datapoint2.Id) != null)
                        {
                            if (< PrivateImplementationDetails > { 4041ACEF - 19DC - 4DB7 - 9F 0C - 17DA902ABE6A }.$$method0x6001a88 - 1 == null)
コード例 #3
0
 internal ClientLogEvent(Datapoint datapoint, string userContext, string ipAddress, string userName, string serverVersion, bool isMowa, string clientIdCookieValue = null) : this(datapoint, userContext, ipAddress, userName, string.Empty, serverVersion, isMowa, clientIdCookieValue)
 {
 }
コード例 #4
0
 // Token: 0x06001B53 RID: 6995 RVA: 0x00067865 File Offset: 0x00065A65
 private static bool ShouldProcessForConsumer(Datapoint datapoint, DatapointConsumer consumer, DatapointConsumer enabledConsumers)
 {
     return(datapoint.IsForConsumer(consumer) && (consumer & enabledConsumers) != DatapointConsumer.None);
 }
コード例 #5
0
 internal ClientLogEvent(Datapoint datapoint, string userContext) : this(datapoint, userContext, string.Empty, string.Empty, string.Empty, string.Empty, false, null)
 {
 }