diff --git a/app.py b/app.py index 6cece27..df8290d 100644 --- a/app.py +++ b/app.py @@ -12,14 +12,13 @@ load_local_template() import logging LOGGER = logging.getLogger(__name__) -init_opentelemetry() +init_opentelemetry(batch=False) app = flask.Flask(__name__) @app.post('/<task_id>') def do_task(task_id): task_info = api.get_task_info(task_id) biz.task.start_task(task_info) - time.sleep(1) # for telemetry upload traces return "OK" diff --git a/telemetry/__init__.py b/telemetry/__init__.py index 99d8e22..acf591d 100644 --- a/telemetry/__init__.py +++ b/telemetry/__init__.py @@ -5,14 +5,14 @@ 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 +from opentelemetry.sdk.trace.export import BatchSpanProcessor, SimpleSpanProcessor def get_tracer(name): return trace.get_tracer(name) # 初始化 OpenTelemetry -def init_opentelemetry(): +def init_opentelemetry(batch=True): # 设置服务名、主机名 resource = Resource(attributes={ SERVICE_NAME: "RENDER_WORKER", @@ -22,9 +22,14 @@ def init_opentelemetry(): }) # 使用HTTP协议上报 - span_processor = BatchSpanProcessor(OTLPSpanHttpExporter( - endpoint="https://oltp.jerryyan.top/v1/traces", - )) + if batch: + span_processor = BatchSpanProcessor(OTLPSpanHttpExporter( + endpoint="https://oltp.jerryyan.top/v1/traces", + )) + else: + span_processor = SimpleSpanProcessor(OTLPSpanHttpExporter( + endpoint="https://oltp.jerryyan.top/v1/traces", + )) trace_provider = TracerProvider(resource=resource, active_span_processor=span_processor) trace.set_tracer_provider(trace_provider)