davidhcoe commented on code in PR #3315:
URL: https://github.com/apache/arrow-adbc/pull/3315#discussion_r2285896305


##########
csharp/src/Drivers/BigQuery/BigQueryConnection.cs:
##########
@@ -85,6 +92,48 @@ public BigQueryConnection(IReadOnlyDictionary<string, 
string> properties) : base
             }
         }
 
+        private void TryInitTracerProvider()
+        {
+            // Avoid locking if the tracer provider is already set.
+            if (s_tracerProvider != null)
+            {
+                return;
+            }
+            // Avoid locking if the exporter option would not activate.
+            this.properties.TryGetValue(ExportersOptions.Exporter, out string? 
exporterOption);
+            ExportersBuilder exportersBuilder = 
ExportersBuilder.Build(this.ActivitySourceName, addDefaultExporters: 
true).Build();
+            if (!exportersBuilder.WouldActivate(exporterOption))
+            {
+                return;
+            }
+
+            // Will likely activate the exporter, so we need to lock to ensure 
thread safety.
+            lock (s_tracerProviderLock)
+            {
+                // Due to race conditions, we need to check again if the 
tracer provider is already set.
+                if (s_tracerProvider != null)
+                {
+                    return;
+                }
+
+                // Activates the exporter specified in the connection property 
(if exists) or environment variable (if is set).
+                if (exportersBuilder.TryActivate(exporterOption, out string? 
exporterName, out TracerProvider? tracerProvider, 
ExportersOptions.Environment.Exporter) && tracerProvider != null)
+                {
+                    s_tracerProvider = tracerProvider;
+                    s_isFileExporterEnabled = 
ExportersOptions.Exporters.AdbcFile.Equals(exporterName);
+                }
+            }
+        }
+
+        /// <summary>
+        /// Conditional used to determines if it is safe to trace
+        /// </summary>
+        /// <remarks>
+        /// It is safe to write to some output types (ie, files) but not 
others (ie, a shared resource).
+        /// </remarks>
+        /// <returns></returns>
+        internal static bool IsSafeToTrace => s_isFileExporterEnabled;

Review Comment:
   is this for PII-type of data?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscr...@arrow.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to