You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.1 KiB
Python
50 lines
1.1 KiB
Python
import logging
|
|
from typing import List, Optional
|
|
|
|
from loguru import logger as _logger
|
|
from pydantic import BaseSettings
|
|
|
|
from amqpworker.options import DefaultValues
|
|
|
|
INFINITY = float("inf")
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
LOGLEVEL: str = "ERROR"
|
|
|
|
AMQP_DEFAULT_VHOST: str = "/"
|
|
AMQP_DEFAULT_PREFETCH_COUNT: int = 128
|
|
AMQP_DEFAULT_HEARTBEAT: int = 60
|
|
|
|
HTTP_HOST: str = "127.0.0.1"
|
|
HTTP_PORT: int = 8080
|
|
|
|
FLUSH_TIMEOUT: int = DefaultValues.BULK_FLUSH_INTERVAL
|
|
|
|
# metrics
|
|
METRICS_NAMESPACE: str = "amqpworker"
|
|
METRICS_APPPREFIX: Optional[str]
|
|
METRICS_ROUTE_PATH: str = "/metrics"
|
|
METRICS_ROUTE_ENABLED: bool = True
|
|
METRICS_DEFAULT_HISTOGRAM_BUCKETS_IN_MS: List[float] = [
|
|
10,
|
|
50,
|
|
100,
|
|
200,
|
|
500,
|
|
1000,
|
|
5000,
|
|
INFINITY,
|
|
]
|
|
|
|
class Config:
|
|
allow_mutation = False
|
|
env_prefix = "AMQPWORKER_"
|
|
|
|
|
|
settings = Settings()
|
|
|
|
loglevel = getattr(logging, settings.LOGLEVEL, logging.INFO)
|
|
_logger.level( settings.LOGLEVEL)
|
|
logger = _logger
|