Можно ли создавать пользовательские открытые телеметрические метрики для расчета среднего времени, когда запрос остается в очереди в ASGI до выполнения, а также средний размер очереди на одного работника? Или, если это невозможно для работника только в целом на сервере ASGI. Я пытался искать в Интернете, но не нашел никакого примера этого варианта использования. CHATGPT SUGAGED мне создать промежуточное программное обеспечение и сделать это так: < /p>
import time
from starlette.middleware.base import BaseHTTPMiddleware
from opentelemetry import metrics
# Create a Meter
meter = metrics.get_meter_provider().get_meter("asgi.queue")
# Define a histogram for queue time
queue_time_histogram = meter.create_histogram(
name="asgi.queue_time",
description="Time requests spend in the ASGI queue",
unit="ms",
)
class QueueTimeMiddleware(BaseHTTPMiddleware):
async def dispatch(self, request, call_next):
request.state.queue_start_time = time.perf_counter() # Request received
response = await call_next(request)
queue_time = time.perf_counter() - request.state.queue_start_time
queue_time_histogram.record(queue_time * 1000) # Convert to milliseconds
return response< /code>
< /div>
< /div>
< /p>
Однако я немного подозрительно относится к этому фрагменту и не знаю, если это Это именно то, что мы хотим. У кого -нибудь есть какие -нибудь советы по этому делу?
Подробнее здесь: https://stackoverflow.com/questions/794 ... ntelemetry
Пользовательские метрики ASGI Worker с OpenElemetry ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение