app不使用批量上报

This commit is contained in:
Jerry Yan 2025-04-28 16:28:27 +08:00
parent 1c0e4ce411
commit b3911839f3
2 changed files with 11 additions and 7 deletions

3
app.py
View File

@ -12,14 +12,13 @@ load_local_template()
import logging import logging
LOGGER = logging.getLogger(__name__) LOGGER = logging.getLogger(__name__)
init_opentelemetry() init_opentelemetry(batch=False)
app = flask.Flask(__name__) app = flask.Flask(__name__)
@app.post('/<task_id>') @app.post('/<task_id>')
def do_task(task_id): def do_task(task_id):
task_info = api.get_task_info(task_id) task_info = api.get_task_info(task_id)
biz.task.start_task(task_info) biz.task.start_task(task_info)
time.sleep(1) # for telemetry upload traces
return "OK" return "OK"

View File

@ -5,14 +5,14 @@ from opentelemetry import trace
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter as OTLPSpanHttpExporter 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.resources import DEPLOYMENT_ENVIRONMENT, HOST_NAME, Resource, SERVICE_NAME, SERVICE_VERSION
from opentelemetry.sdk.trace import TracerProvider 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): def get_tracer(name):
return trace.get_tracer(name) return trace.get_tracer(name)
# 初始化 OpenTelemetry # 初始化 OpenTelemetry
def init_opentelemetry(): def init_opentelemetry(batch=True):
# 设置服务名、主机名 # 设置服务名、主机名
resource = Resource(attributes={ resource = Resource(attributes={
SERVICE_NAME: "RENDER_WORKER", SERVICE_NAME: "RENDER_WORKER",
@ -22,9 +22,14 @@ def init_opentelemetry():
}) })
# 使用HTTP协议上报 # 使用HTTP协议上报
if batch:
span_processor = BatchSpanProcessor(OTLPSpanHttpExporter( span_processor = BatchSpanProcessor(OTLPSpanHttpExporter(
endpoint="https://oltp.jerryyan.top/v1/traces", 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_provider = TracerProvider(resource=resource, active_span_processor=span_processor)
trace.set_tracer_provider(trace_provider) trace.set_tracer_provider(trace_provider)