The scraper crashed for me when it lost connection while trying to scrape. This caused it to terminate and the board didn't update until a manual restart.
Here is the traceback:
raspberry@raspberrypi:~/Desktop/futuresboard $ docker-compose logs -f
Attaching to futuresboard_futuresboard_1
futuresboard_1 | * Serving Flask app 'futuresboard.app'
futuresboard_1 | * Debug mode: off
futuresboard_1 | WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
futuresboard_1 | * Running on all addresses (0.0.0.0)
futuresboard_1 | * Running on http://127.0.0.1:5000
futuresboard_1 | * Running on http://----:5000
futuresboard_1 | Press CTRL+C to quit
futuresboard_1 | [2022-11-26 11:40:42,803] INFO in scraper: Orders updated: 283; Positions updated: 19 (new: 0); Trades processed: 1811; Time elapsed: 0:01:52.883734; Sleeps: 0
futuresboard_1 | [2022-11-26 11:40:42,805] INFO in scraper: Auto scrape routines terminated. Sleeping 300 seconds...
futuresboard_1 | [2022-11-26 11:45:42,898] INFO in scraper: Auto scrape routines starting
futuresboard_1 | [2022-11-26 11:47:01,180] INFO in scraper: Orders updated: 260; Positions updated: 18 (new: 0); Trades processed: 1; Time elapsed: 0:01:18.280826; Sleeps: 0
futuresboard_1 | [2022-11-26 11:47:01,185] INFO in scraper: Auto scrape routines terminated. Sleeping 300 seconds...
futuresboard_1 | [2022-11-26 11:52:01,287] INFO in scraper: Auto scrape routines starting
futuresboard_1 | Exception in thread Thread-1:
futuresboard_1 | Traceback (most recent call last):
futuresboard_1 | File "/usr/local/lib/python3.8/site-packages/urllib3/connection.py", line 174, in _new_conn
futuresboard_1 | conn = connection.create_connection(
futuresboard_1 | File "/usr/local/lib/python3.8/site-packages/urllib3/util/connection.py", line 72, in create_connection
futuresboard_1 | for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
futuresboard_1 | File "/usr/local/lib/python3.8/socket.py", line 918, in getaddrinfo
futuresboard_1 | for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
futuresboard_1 | socket.gaierror: [Errno -3] Temporary failure in name resolution
futuresboard_1 |
futuresboard_1 | During handling of the above exception, another exception occurred:
futuresboard_1 |
futuresboard_1 | Traceback (most recent call last):
futuresboard_1 | File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 703, in urlopen
futuresboard_1 | httplib_response = self._make_request(
futuresboard_1 | File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 386, in _make_request
futuresboard_1 | self._validate_conn(conn)
futuresboard_1 | File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 1042, in _validate_conn
futuresboard_1 | conn.connect()
futuresboard_1 | File "/usr/local/lib/python3.8/site-packages/urllib3/connection.py", line 358, in connect
futuresboard_1 | self.sock = conn = self._new_conn()
futuresboard_1 | File "/usr/local/lib/python3.8/site-packages/urllib3/connection.py", line 186, in _new_conn
futuresboard_1 | raise NewConnectionError(
futuresboard_1 | urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPSConnection object at 0x7fb7c48100>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution
futuresboard_1 |
futuresboard_1 | During handling of the above exception, another exception occurred:
futuresboard_1 |
futuresboard_1 | Traceback (most recent call last):
futuresboard_1 | File "/usr/local/lib/python3.8/site-packages/requests/adapters.py", line 489, in send
futuresboard_1 | resp = conn.urlopen(
futuresboard_1 | File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 787, in urlopen
futuresboard_1 | retries = retries.increment(
futuresboard_1 | File "/usr/local/lib/python3.8/site-packages/urllib3/util/retry.py", line 592, in increment
futuresboard_1 | raise MaxRetryError(_pool, url, error or ResponseError(cause))
futuresboard_1 | urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='api-testnet.bybit.com', port=443): Max retries exceeded with url: /private/linear/position/list?api_key=----×tamp=1669463521290&sign=---- (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fb7c48100>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution'))
futuresboard_1 |
futuresboard_1 | During handling of the above exception, another exception occurred:
futuresboard_1 |
futuresboard_1 | Traceback (most recent call last):
futuresboard_1 | File "/usr/local/lib/python3.8/threading.py", line 932, in _bootstrap_inner
futuresboard_1 | self.run()
futuresboard_1 | File "/usr/local/lib/python3.8/threading.py", line 870, in run
futuresboard_1 | self._target(*self._args, **self._kwargs)
futuresboard_1 | File "/usr/local/lib/python3.8/site-packages/futuresboard/scraper.py", line 43, in _auto_scrape
futuresboard_1 | scrape(app=app)
futuresboard_1 | File "/usr/local/lib/python3.8/site-packages/futuresboard/scraper.py", line 274, in scrape
futuresboard_1 | _scrape(app=app)
futuresboard_1 | File "/usr/local/lib/python3.8/site-packages/futuresboard/scraper.py", line 405, in _scrape
futuresboard_1 | responseHeader, responseJSON = send_signed_request(
futuresboard_1 | File "/usr/local/lib/python3.8/site-packages/futuresboard/scraper.py", line 95, in send_signed_request
futuresboard_1 | response = dispatch_request(http_method)(**params)
futuresboard_1 | File "/usr/local/lib/python3.8/site-packages/requests/sessions.py", line 600, in get
futuresboard_1 | return self.request("GET", url, **kwargs)
futuresboard_1 | File "/usr/local/lib/python3.8/site-packages/requests/sessions.py", line 587, in request
futuresboard_1 | resp = self.send(prep, **send_kwargs)
futuresboard_1 | File "/usr/local/lib/python3.8/site-packages/requests/sessions.py", line 701, in send
futuresboard_1 | r = adapter.send(request, **kwargs)
futuresboard_1 | File "/usr/local/lib/python3.8/site-packages/requests/adapters.py", line 565, in send
futuresboard_1 | raise ConnectionError(e, request=request)
futuresboard_1 | requests.exceptions.ConnectionError: HTTPSConnectionPool(host='api-testnet.bybit.com', port=443): Max retries exceeded with url: /private/linear/position/list?api_key=----×tamp=1669463521290&sign=---- (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fb7c48100>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution'))
Here is the logs after the fix:
futuresboard_1 | [2022-11-26 12:04:57,453] INFO in scraper: Auto scrape routines starting
futuresboard_1 | [2022-11-26 12:05:07,477] ERROR in scraper: Request to 'https://api-testnet.bybit.com/private/linear/position/list?api_key=-----×tamp=1669464297456&sign=----' failed. Code: -1; Message: HTTPSConnectionPool(host='api-testnet.bybit.com', port=443): Max retries exceeded with url: /private/linear/position/list?api_key=-----×tamp=1669464297456&sign=-----(Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f7e6b58b0>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution'))
futuresboard_1 | [2022-11-26 12:05:07,477] INFO in scraper: Auto scrape routines terminated. Sleeping 300 seconds...
The scraper crashed for me when it lost connection while trying to scrape. This caused it to terminate and the board didn't update until a manual restart. Here is the traceback:
Here is the logs after the fix: