Our app is using the RedisQ API to fetch killmails. It is called killtracker and used by many alliances incl. my own.
Since a few days we are seeing re-occurring failures when accessing the API. These are mainly HTTP 500s and read timeouts.
Those issues are reported by several alliances and I can see them in my logs too. My logs shows ~ 650 HTTP 500s and ~150 read timeouts over 24 hrs.
The app has been working without these kind of issues for 3+ years, so we currently assume the cause of the failures lies with the API.
We would very appreciate if you could investigate these failures or maybe let us now if there is anything we can do on our side to mitigate them.
Here are some examples from the logs (this is Django / Python).
Traceback (most recent call last):
File "/home/allianceserver/venv/auth/lib/python3.10/site-packages/celery/app/trace.py", line 477, in trace_task
R = retval = fun(*args, **kwargs)
File "/home/allianceserver/venv/auth/lib/python3.10/site-packages/celery/app/trace.py", line 760, in __protected_call__
return self.run(*args, **kwargs)
File "/home/allianceserver/venv/auth/lib/python3.10/site-packages/killtracker/tasks.py", line 53, in run_killtracker
killmail = Killmail.create_from_zkb_redisq()
File "/home/allianceserver/venv/auth/lib/python3.10/site-packages/killtracker/core/killmails.py", line 410, in create_from_zkb_redisq
response.raise_for_status()
File "/home/allianceserver/venv/auth/lib/python3.10/site-packages/requests/models.py", line 1021, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 500 Server Error: Internal Server Error for url: https://redisq.zkillboard.com/listen.php?ttw=5
Traceback (most recent call last):
File "/home/allianceserver/venv/auth/lib/python3.10/site-packages/urllib3/connectionpool.py", line 536, in _make_request
response = conn.getresponse()
File "/home/allianceserver/venv/auth/lib/python3.10/site-packages/urllib3/connection.py", line 461, in getresponse
httplib_response = super().getresponse()
File "/usr/lib/python3.10/http/client.py", line 1375, in getresponse
response.begin()
File "/usr/lib/python3.10/http/client.py", line 318, in begin
version, status, reason = self._read_status()
File "/usr/lib/python3.10/http/client.py", line 279, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
File "/usr/lib/python3.10/socket.py", line 705, in readinto
return self._sock.recv_into(b)
File "/usr/lib/python3.10/ssl.py", line 1274, in recv_into
return self.read(nbytes, buffer)
File "/usr/lib/python3.10/ssl.py", line 1130, in read
return self._sslobj.read(len, buffer)
TimeoutError: The read operation timed out
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/allianceserver/venv/auth/lib/python3.10/site-packages/requests/adapters.py", line 486, in send
resp = conn.urlopen(
File "/home/allianceserver/venv/auth/lib/python3.10/site-packages/urllib3/connectionpool.py", line 844, in urlopen
retries = retries.increment(
File "/home/allianceserver/venv/auth/lib/python3.10/site-packages/urllib3/util/retry.py", line 470, in increment
raise reraise(type(error), error, _stacktrace)
File "/home/allianceserver/venv/auth/lib/python3.10/site-packages/urllib3/util/util.py", line 39, in reraise
raise value
File "/home/allianceserver/venv/auth/lib/python3.10/site-packages/urllib3/connectionpool.py", line 790, in urlopen
response = self._make_request(
File "/home/allianceserver/venv/auth/lib/python3.10/site-packages/urllib3/connectionpool.py", line 538, in _make_request
self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
File "/home/allianceserver/venv/auth/lib/python3.10/site-packages/urllib3/connectionpool.py", line 370, in _raise_timeout
raise ReadTimeoutError(
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='redisq.zkillboard.com', port=443): Read timed out. (read timeout=30)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/allianceserver/venv/auth/lib/python3.10/site-packages/celery/app/trace.py", line 477, in trace_task
R = retval = fun(*args, **kwargs)
File "/home/allianceserver/venv/auth/lib/python3.10/site-packages/celery/app/trace.py", line 760, in __protected_call__
return self.run(*args, **kwargs)
File "/home/allianceserver/venv/auth/lib/python3.10/site-packages/killtracker/tasks.py", line 53, in run_killtracker
killmail = Killmail.create_from_zkb_redisq()
File "/home/allianceserver/venv/auth/lib/python3.10/site-packages/killtracker/core/killmails.py", line 394, in create_from_zkb_redisq
response = requests.get(
File "/home/allianceserver/venv/auth/lib/python3.10/site-packages/requests/api.py", line 73, in get
return request("get", url, params=params, **kwargs)
File "/home/allianceserver/venv/auth/lib/python3.10/site-packages/requests/api.py", line 59, in request
return session.request(method=method, url=url, **kwargs)
File "/home/allianceserver/venv/auth/lib/python3.10/site-packages/requests/sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)
File "/home/allianceserver/venv/auth/lib/python3.10/site-packages/requests/sessions.py", line 703, in send
r = adapter.send(request, **kwargs)
File "/home/allianceserver/venv/auth/lib/python3.10/site-packages/requests/adapters.py", line 532, in send
raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='redisq.zkillboard.com', port=443): Read timed out. (read timeout=30)