internal static void ProcessEventData()

in src/sdk/Utils/SqlRequestUtil.cs [68:94]


        internal static void ProcessEventData(EventWrittenEventArgs sqlEventData)
        {
            int id = Convert.ToInt32(sqlEventData.Payload[0], CultureInfo.InvariantCulture);
            string dataSource = Convert.ToString(sqlEventData.Payload[1], CultureInfo.InvariantCulture);
            string database = Convert.ToString(sqlEventData.Payload[2], CultureInfo.InvariantCulture);
            string commandText = Convert.ToString(sqlEventData.Payload[3], CultureInfo.InvariantCulture);

            if (string.IsNullOrEmpty(database) || string.IsNullOrEmpty(dataSource))
            {
                return;
            }

            string subsegmentName = database + "@" + RemovePortNumberFromDataSource(dataSource);

            var recorder = AWSXRayRecorder.Instance;
            recorder.BeginSubsegment(subsegmentName);
            recorder.SetNamespace("remote");
            recorder.AddSqlInformation("database_type", "sqlserver");

            if (ShouldCollectSqlText())
            {
                if (!string.IsNullOrEmpty(commandText))
                {
                    recorder.AddSqlInformation("sanitized_query", commandText);
                }
            }
        }