'name': 'queries',
        'description': 'Generates queries for impala / hive'
     }
]

app = FastAPI(title=APP_NAME,
              version=version,
              description=description,
              openapi_tags=tags_metadata,
)

# create an instrumentator to expose metrics to prometheus
instrumentator = Instrumentator(
    excluded_handlers=["/metrics"],
)
instrumentator.instrument(app)

# add routers
app.include_router(
    metrics.router,
    prefix='/metrics',
    tags=['prometheus']
)

app.include_router(partition_range.router, tags=['queries'])


# Show the docs under /
@app.get("/", include_in_schema=False)
def root():
    return RedirectResponse('/docs')
Beispiel #2
0
from . import main  # noqa
from . import api  # noqa
from . import view  # noqa

app.include_router(api.router)
app.include_router(view.router)

# prometheus
from prometheus_fastapi_instrumentator import Instrumentator  # noqa

expose_url = settings.MONITORING_URL

instrumentator = Instrumentator(
    excluded_handlers=[".*admin.*", expose_url],
    should_respect_env_var=True,
    env_var_name="ENABLE_METRICS",
)
instrumentator.instrument(app).expose(app, endpoint=expose_url)
# utils.metrics.bad_solves_per_user
"""
@app.on_event("startup")
def startup_event():
    metrics.load_all_metrics()


@app.on_event("shutdown")
def shutdown_event():
    metrics.save_all_metrics()
"""