Current Path: > > opt > cloudlinux > venv > lib64 > python3.11 > > > site-packages > sentry_sdk >
Operation : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 Software : Apache Server IP : 162.0.232.56 | Your IP: 216.73.216.111 Domains : 1034 Domain(s) Permission : [ 0755 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
__pycache__ | Directory | - | - | |
crons | Directory | - | - | |
integrations | Directory | - | - | |
__init__.py | File | 1056 bytes | April 17 2025 13:10:59. | |
_compat.py | File | 2795 bytes | April 17 2025 13:10:59. | |
_functools.py | File | 4957 bytes | April 17 2025 13:10:59. | |
_lru_cache.py | File | 5390 bytes | April 17 2025 13:10:59. | |
_queue.py | File | 11267 bytes | April 17 2025 13:10:59. | |
_types.py | File | 2247 bytes | April 17 2025 13:10:59. | |
_werkzeug.py | File | 3790 bytes | April 17 2025 13:10:59. | |
api.py | File | 6192 bytes | April 17 2025 13:10:59. | |
attachments.py | File | 1811 bytes | April 17 2025 13:10:59. | |
client.py | File | 22890 bytes | April 17 2025 13:10:59. | |
consts.py | File | 8697 bytes | April 17 2025 13:10:59. | |
debug.py | File | 1132 bytes | April 17 2025 13:10:59. | |
envelope.py | File | 9591 bytes | April 17 2025 13:10:59. | |
hub.py | File | 27050 bytes | April 17 2025 13:10:59. | |
monitor.py | File | 3037 bytes | April 17 2025 13:10:59. | |
profiler.py | File | 33978 bytes | April 17 2025 13:10:59. | |
py.typed | File | 0 bytes | April 17 2025 13:10:59. | |
scope.py | File | 24844 bytes | April 17 2025 13:10:59. | |
scrubber.py | File | 3893 bytes | April 17 2025 13:10:59. | |
serializer.py | File | 13285 bytes | April 17 2025 13:10:59. | |
session.py | File | 5561 bytes | April 17 2025 13:10:59. | |
sessions.py | File | 5900 bytes | April 17 2025 13:10:59. | |
tracing.py | File | 29739 bytes | April 17 2025 13:10:59. | |
tracing_utils.py | File | 12287 bytes | April 17 2025 13:10:59. | |
tracing_utils_py2.py | File | 1244 bytes | April 17 2025 13:10:59. | |
tracing_utils_py3.py | File | 2146 bytes | April 17 2025 13:10:59. | |
transport.py | File | 18570 bytes | April 17 2025 13:10:59. | |
utils.py | File | 46676 bytes | April 17 2025 13:10:59. | |
worker.py | File | 4254 bytes | April 17 2025 13:10:59. |
import os import time from threading import Thread, Lock import sentry_sdk from sentry_sdk.utils import logger from sentry_sdk._types import TYPE_CHECKING if TYPE_CHECKING: from typing import Optional class Monitor(object): """ Performs health checks in a separate thread once every interval seconds and updates the internal state. Other parts of the SDK only read this state and act accordingly. """ name = "sentry.monitor" def __init__(self, transport, interval=10): # type: (sentry_sdk.transport.Transport, float) -> None self.transport = transport # type: sentry_sdk.transport.Transport self.interval = interval # type: float self._healthy = True self._downsample_factor = 1 # type: int self._thread = None # type: Optional[Thread] self._thread_lock = Lock() self._thread_for_pid = None # type: Optional[int] self._running = True def _ensure_running(self): # type: () -> None if self._thread_for_pid == os.getpid() and self._thread is not None: return None with self._thread_lock: if self._thread_for_pid == os.getpid() and self._thread is not None: return None def _thread(): # type: (...) -> None while self._running: time.sleep(self.interval) if self._running: self.run() thread = Thread(name=self.name, target=_thread) thread.daemon = True thread.start() self._thread = thread self._thread_for_pid = os.getpid() return None def run(self): # type: () -> None self.check_health() self.set_downsample_factor() def set_downsample_factor(self): # type: () -> None if self._healthy: if self._downsample_factor > 1: logger.debug( "[Monitor] health check positive, reverting to normal sampling" ) self._downsample_factor = 1 else: self._downsample_factor *= 2 logger.debug( "[Monitor] health check negative, downsampling with a factor of %d", self._downsample_factor, ) def check_health(self): # type: () -> None """ Perform the actual health checks, currently only checks if the transport is rate-limited. TODO: augment in the future with more checks. """ self._healthy = self.transport.is_healthy() def is_healthy(self): # type: () -> bool self._ensure_running() return self._healthy @property def downsample_factor(self): # type: () -> int self._ensure_running() return self._downsample_factor def kill(self): # type: () -> None self._running = False def __del__(self): # type: () -> None self.kill()
SILENT KILLER Tool