Open Telemetry#
AutoGen 原生支持 open telemetry。这使得你可以从你的应用程序中收集遥测数据,并将其发送到你选择的遥测后端。
这些是目前已集成的组件:
运行时(单线程代理运行时,工作代理运行时)
为您的应用程序进行仪表化#
要为您的应用程序进行检测,您需要一个SDK和一个导出器。如果您的应用程序已经使用OpenTelemetry进行了检测,您可能已经拥有了这些。
干净的仪表化#
如果您的应用程序中没有设置open telemetry,您可以按照以下步骤来为您的应用程序进行检测。
pip install opentelemetry-sdk
根据您的开放遥测收集器,您可以使用grpc或http来导出您的遥测数据。
# Pick one of the following
pip install opentelemetry-exporter-otlp-proto-http
pip install opentelemetry-exporter-otlp-proto-grpc
接下来,我们需要获取一个追踪器提供者:
from opentelemetry import trace
from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter
from opentelemetry.sdk.resources import Resource
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
def configure_oltp_tracing(endpoint: str = None) -> trace.TracerProvider:
# Configure Tracing
tracer_provider = TracerProvider(resource=Resource({"service.name": "my-service"}))
processor = BatchSpanProcessor(OTLPSpanExporter())
tracer_provider.add_span_processor(processor)
trace.set_tracer_provider(tracer_provider)
return tracer_provider
现在你可以在创建运行时发送 trace_provider:
# for single threaded runtime
single_threaded_runtime = SingleThreadedAgentRuntime(tracer_provider=tracer_provider)
# or for worker runtime
worker_runtime = GrpcWorkerAgentRuntime(tracer_provider=tracer_provider)
就这样!您的应用程序现在已通过开放遥测进行了仪器化。您现在可以在您的遥测后端查看遥测数据。
现有工具#
如果您的应用程序中已经设置了开放遥测,您可以在创建运行时将跟踪提供者传递给运行时:
from opentelemetry import trace
# Get the tracer provider from your application
tracer_provider = trace.get_tracer_provider()
# for single threaded runtime
single_threaded_runtime = SingleThreadedAgentRuntime(tracer_provider=tracer_provider)
# or for worker runtime
worker_runtime = GrpcWorkerAgentRuntime(tracer_provider=tracer_provider)