-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
66 lines (49 loc) · 1.94 KB
/
main.py
File metadata and controls
66 lines (49 loc) · 1.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import multiprocessing
import os
from app.routers.router import * # noqa: F403
from granian import Granian
from app.config import Settings
from app.core.application import app
settings = Settings()
if settings.enable_logger:
from app.core.logger import LoggerMiddleware
app = LoggerMiddleware(app)
if __name__ == "__main__":
workers = multiprocessing.cpu_count()
Granian(
"main:app",
address="0.0.0.0",
port=settings.port_app,
interface="asgi",
workers=settings.worker or workers,
runtime_mode=settings.granian_runtime_mode,
backlog=16384,
backpressure=4096,
websockets=False,
log_enabled=False,
).serve()
# Habilita as Metricas do Prometheus
# if settings.enable_metrics:
# if settings.prometheus_multiproc_dir:
# os.environ["PROMETHEUS_MULTIPROC_DIR"] = os.path.abspath("./metrics")
# os.makedirs(os.environ["PROMETHEUS_MULTIPROC_DIR"], exist_ok=True)
# from app.core.metrics import PrometheusMiddleware
# app = PrometheusMiddleware(app)
# Habilita o Tracing do OpenTelemetry
# if settings.enable_tracing:
# import app.core.tracing as otel # noqa: F401
# from opentelemetry.instrumentation.asgi import OpenTelemetryMiddleware
# from opentelemetry.util.http import parse_excluded_urls
# from opentelemetry.semconv.attributes.http_attributes import HTTP_ROUTE
# from app.core.routing import get_route_details
# def _get_default_span_details(scope):
# route, method = get_route_details(method=scope["method"], path=scope["path"])
# attributes = {HTTP_ROUTE: route}
# span_name = f"{method} {route}"
# return span_name, attributes
# app = OpenTelemetryMiddleware(
# app,
# excluded_urls=parse_excluded_urls("/metrics,/openapi.json,/docs"),
# exclude_spans=["send", "receive"],
# default_span_details=_get_default_span_details,
# )