Skip to content

Commit d59ae72

Browse files
authored
Ref #817 - Include celery task info in all logs to aid tracing (#828)
1 parent 3817e0a commit d59ae72

File tree

7 files changed

+20
-15
lines changed

7 files changed

+20
-15
lines changed

checks/tasks/__init__.py

+6-2
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
import unbound
1313
from internetnl import log
14+
from timeit import default_timer as timer
1415

1516

1617
class SetupUnboundContext(Task):
@@ -114,11 +115,14 @@ def callback(self, data, status, result):
114115
data["rcode"] = result.rcode
115116
data["done"] = True
116117

117-
def get(self, *args, **kwargs):
118+
def get(self, url, *args, **kwargs):
118119
"""
119120
Perform a HTTP GET request using the stored session
120121
"""
122+
start_time = timer()
121123
if not hasattr(self, "_requests_session"):
122124
self._requests_session = requests.session()
123125

124-
return self._requests_session.get(*args, **kwargs)
126+
response = self._requests_session.get(url, *args, **kwargs)
127+
log.debug(f"HTTP request completed in {timer()-start_time:.06f}s: {url}")
128+
return response

checks/tasks/cipher_info.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
import logging
21
import re
32
from collections import OrderedDict
43
from enum import Enum
54
from math import log, pow
65

6+
from celery.utils.log import get_task_logger
77
from nassl.legacy_ssl_client import LegacySslClient
88
from nassl.ssl_client import SslClient
99

1010
from checks.tasks.tls_connection import DebugConnection, ModernConnection
1111

12-
logger = logging.getLogger("internetnl")
12+
logger = get_task_logger(__name__)
1313

1414

1515
class SecLevel(Enum):

checks/tasks/rpki.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from celery.exceptions import SoftTimeLimitExceeded
88
from django.conf import settings
99
from django.db import transaction
10-
import logging
10+
from celery.utils.log import get_task_logger
1111

1212
from interface import batch, batch_shared_task
1313
from . import SetupUnboundContext
@@ -36,7 +36,7 @@
3636
TestName = NewType("TestName", str)
3737
TestResult = Dict[TestName, List[Dict[str, Union[Dict, List, str]]]]
3838

39-
logger = logging.getLogger("internetnl")
39+
logger = get_task_logger(__name__)
4040

4141
# mapping services to models
4242
model_map = dict(

checks/tasks/tls.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
# SPDX-License-Identifier: Apache-2.0
33
import errno
44
import http.client
5-
import logging
65
import socket
76
import ssl
87
import time
@@ -14,6 +13,7 @@
1413
import eventlet
1514
from celery import shared_task
1615
from celery.exceptions import SoftTimeLimitExceeded
16+
from celery.utils.log import get_task_logger
1717
from cryptography.hazmat.backends import default_backend
1818
from cryptography.hazmat.backends.openssl.dh import _DHPublicKey
1919
from cryptography.hazmat.backends.openssl.dsa import _DSAPublicKey
@@ -105,7 +105,7 @@
105105
else:
106106
raise e
107107

108-
logger = logging.getLogger("internetnl")
108+
logger = get_task_logger(__name__)
109109

110110
# Based on:
111111
# hhttps://tools.ietf.org/html/rfc5246#section-7.4.1.4.1 "Signature Algorithms"

checks/tasks/tls_connection.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from io import BytesIO
1111
from urllib.parse import urlparse
1212

13+
from celery.utils.log import get_task_logger
1314
from django.conf import settings
1415
from nassl import _nassl
1516
from nassl.legacy_ssl_client import LegacySslClient
@@ -21,8 +22,7 @@
2122
from internetnl import celery_app
2223

2324
# Use a dedicated logger as this logging can be very verbose
24-
logger = logging.getLogger(__name__)
25-
sslConnectLogger = logging.getLogger("internetnl.ssl.connect")
25+
sslConnectLogger = get_task_logger("internetnl.ssl.connect")
2626

2727
HTTPS_READ_CHUNK_SIZE = 8192
2828

interface/batch/scheduler.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -540,11 +540,11 @@ def _run_scheduler():
540540

541541
start_time = timer()
542542
find_stalled_tests_and_update_db()
543-
logger.info("Found stalled tests in {}s".format(timer() - start_time))
543+
logger.info("Found stalled tests in {:.06f}s".format(timer() - start_time))
544544

545545
start_time = timer()
546546
update_batch_request_status()
547-
logger.info("Updated batch request status in {}s".format(timer() - start_time))
547+
logger.info("Updated batch request status in {:.06f}s".format(timer() - start_time))
548548

549549
submitted_domains = 0
550550
found_domains = 0
@@ -580,7 +580,7 @@ def _run_scheduler():
580580
found_domains += 1
581581
update_domain_status(batch_domain)
582582
logger.info(
583-
f"Submitted {submitted_domains} domains in {format(timer() - start_time)}s, "
583+
f"Submitted {submitted_domains} domains in {format(timer() - start_time):.06f}s, "
584584
f"{len(live_requests)} users remaining in queue"
585585
)
586586
else:

internetnl/__init__.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
# Copyright: 2022, ECP, NLnet Labs and the Internet.nl contributors
22
# SPDX-License-Identifier: Apache-2.0
3-
import logging
43

54
from internetnl.celery import app as celery_app
65

7-
log = logging.getLogger(__package__)
6+
from celery.utils.log import get_task_logger
7+
8+
log = get_task_logger(__package__)
89

910
__all__ = ("celery_app",)

0 commit comments

Comments
 (0)