Add APM
This commit is contained in:
16
app/utils/apm.py
Normal file
16
app/utils/apm.py
Normal file
@@ -0,0 +1,16 @@
|
||||
import sentry_sdk
|
||||
from sentry_sdk.integrations.stdlib import StdlibIntegration
|
||||
|
||||
from app.utils.config import config
|
||||
|
||||
|
||||
if config.sentry_enabled:
|
||||
apm = sentry_sdk.init(
|
||||
dsn=config.sentry_dsn,
|
||||
enable_tracing=True,
|
||||
environment=config.environment,
|
||||
integrations=[StdlibIntegration()],
|
||||
spotlight=True
|
||||
)
|
||||
else:
|
||||
apm = None
|
@@ -5,12 +5,29 @@ import os
|
||||
|
||||
class Config:
|
||||
def __init__(self) -> None:
|
||||
self.__environment: str = os.environ.get("APP_LIFECYCLE", "DEV").upper()
|
||||
self.__bot_name: str = os.environ["BOT_NAME"]
|
||||
self.__webex_token: str = os.environ["WEBEX_API_KEY"]
|
||||
self.__admin_first_name: str = os.environ["ADMIN_FIRST_NAME"]
|
||||
self.__admin_emails: list = os.environ["ADMIN_EMAIL"].split(",")
|
||||
self.__n8n_webhook_url: str = os.environ["N8N_WEBHOOK_URL"]
|
||||
self.__sentry_dsn: str = os.environ.get("SENTRY_DSN", "")
|
||||
self.__sentry_enabled: bool = True if (os.environ.get("SENTRY_ENABLED").upper() == "TRUE" and self.__sentry_dsn != "") else False
|
||||
|
||||
@property
|
||||
def environment(self) -> str:
|
||||
return self.__environment
|
||||
|
||||
@property
|
||||
def sentry_enabled(self) -> bool:
|
||||
return self.__sentry_enabled
|
||||
|
||||
@property
|
||||
def sentry_dsn(self) -> str:
|
||||
if not self.__sentry_enabled:
|
||||
return ""
|
||||
return self.__sentry_dsn
|
||||
|
||||
@property
|
||||
def bot_name(self) -> str:
|
||||
return self.__bot_name
|
||||
|
@@ -1,4 +1,5 @@
|
||||
import requests
|
||||
import sentry_sdk
|
||||
|
||||
from app.utils.config import config
|
||||
|
||||
@@ -16,22 +17,26 @@ def __n8n_post(data: dict) -> bool:
|
||||
|
||||
|
||||
def submit_task(summary, description, completion_date, requestor) -> bool:
|
||||
data: dict = {
|
||||
"requestor": requestor,
|
||||
"title": summary,
|
||||
"description": description,
|
||||
"completiondate": completion_date,
|
||||
}
|
||||
return __n8n_post(data=data)
|
||||
with sentry_sdk.start_transaction(name="submit_task"):
|
||||
data: dict = {
|
||||
"requestor": requestor,
|
||||
"title": summary,
|
||||
"description": description,
|
||||
"completiondate": completion_date,
|
||||
}
|
||||
_data = __n8n_post(data=data)
|
||||
return _data
|
||||
|
||||
|
||||
def get_tasks(requestor) -> bool:
|
||||
headers: dict = {"Content-Type": "application/json"}
|
||||
resp: requests.Response = requests.get(
|
||||
url=config.n8n_webhook_url,
|
||||
headers=headers,
|
||||
timeout=10,
|
||||
verify=False,
|
||||
params={"requestor": requestor},
|
||||
)
|
||||
return bool(resp.status_code == 200)
|
||||
with sentry_sdk.start_transaction(name="get_tasks"):
|
||||
headers: dict = {"Content-Type": "application/json"}
|
||||
resp: requests.Response = requests.get(
|
||||
url=config.n8n_webhook_url,
|
||||
headers=headers,
|
||||
timeout=10,
|
||||
verify=False,
|
||||
params={"requestor": requestor},
|
||||
)
|
||||
_data = bool(resp.status_code == 200)
|
||||
return _data
|
||||
|
Reference in New Issue
Block a user