Exemplo n.º 1
0
        private void ServiceFabricTraceEvent(TraceEvent data)
        {
            var eventId         = (ushort)data.ID;
            var eventIsRelevant =
                (
                    (data.Level <= TraceEventLevel.Error && data.Level >= TraceEventLevel.Critical) ||
                    (
                        ServiceFabricEtw.Operational.ClusterEventsFilter(eventId, data) ||
                        ServiceFabricEtw.Operational.NodeEventsFilter(eventId, data)
                    ));

            if (!eventIsRelevant)
            {
                return;
            }

            var properties = data.PayloadNames
                             .Select((name, index) =>
            {
                if (data.PayloadValue(index) is DateTime dateTimeValue)
                {
                    return(new KeyValuePair <string, string>(name, dateTimeValue.ToString("o")));
                }
                return(new KeyValuePair <string, string>(name, data.PayloadString(index, Culture)));
            })
                             .ToDictionary(x => x.Key, x => x.Value);

            properties.Add("eventID", data.ID.ToString());
            properties.Add("name", data.EventName);
            properties.Add("timeStamp", data.TimeStamp.ToString("o"));

            AppInsightsClient.TrackTrace(data.FormattedMessage, data.ToSeverityLevel(), properties);
        }