birschick-bq commented on issue #2210:
URL: https://github.com/apache/arrow-adbc/issues/2210#issuecomment-2806970076

   Observations:
   
   - ADBC drivers should adopt OpenTelemetry instrumentation for tracing as is 
provides for a good variety of [export 
targets](https://opentelemetry.io/ecosystem/registry/?s=&component=exporter&language=collector&flag=all)
 (OTLP, debug, , etc.).
   - Using tracing, as opposed to logging, adds the ability to correlate 
telemetry from different sources. However, tracing is more expensive and 
implies that telemetry messages should be less frequent traditional logging.
   - Automatic instrumentation is not realistic or desirable.
   - Normally, exporters should be added/enabled in the end-user application. 
This is because the end-user application can define the lifetime of the 
exporter and what option and parameters to set.
   - However, this is not possible with a multiple-runtime scenario. The 
wrapping language runtime does not have access to the telemetry data in the 
consumed runtime.
   - It is recommended that each driver implementation should allow the 
addition, configuration, and enablement of the OTLP exporter. (Need to 
determine which of the 3 variants of OTLP exporter to use.)
   - End user applications can deploy and configure an [OpenTelemetry 
Collector](https://opentelemetry.io/docs/collector/) to receive OTLP messages 
and export them to a target of their choice.
   - As the overhead and complexity of deploying and running a Collector is 
considerable, it still makes sense to provide the addition and enablement of 
console and/or file exporters.
   - It is recommended that a new property, `TraceParent`, is added to the API 
for the `Connection` and `Statement` objects to allow telemetry messages to 
have a correlation id with an existing trace parent. 
   - We need a recommendation on how to enable and configure the behavior of 
each exporter. Should it be by database/connection options, configuration file, 
or [environment 
variables](https://opentelemetry.io/docs/languages/sdk-configuration/otlp-exporter/)?
   - Because drivers are contained in libraries and not applications, care must 
be taken to ensure the correct lifetime of enabled exporters.


-- 
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