import os from constant import SOFTWARE_VERSION from opentelemetry import trace from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter as OTLPSpanHttpExporter from opentelemetry.sdk.resources import DEPLOYMENT_ENVIRONMENT, HOST_NAME, Resource, SERVICE_NAME, SERVICE_VERSION from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace.export import BatchSpanProcessor def get_tracer(name): return trace.get_tracer(name) # 初始化 OpenTelemetry def init_opentelemetry(): # 设置服务名、主机名 resource = Resource(attributes={ SERVICE_NAME: "RENDER_WORKER", SERVICE_VERSION: SOFTWARE_VERSION, DEPLOYMENT_ENVIRONMENT: "Python", HOST_NAME: os.getenv("ACCESS_KEY"), }) # 使用HTTP协议上报 span_processor = BatchSpanProcessor(OTLPSpanHttpExporter( endpoint="http://tracing-analysis-dc-sh.aliyuncs.com/adapt_e7qojqi4e0@aa79b4d367fb6b7_e7qojqi4e0@53df7ad2afe8301/api/otlp/traces", )) trace_provider = TracerProvider(resource=resource, active_span_processor=span_processor) trace.set_tracer_provider(trace_provider)