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); }