Skip to content

Commit 478bbdc

Browse files
committed
refactor
1 parent 837e6d7 commit 478bbdc

File tree

1 file changed

+13
-35
lines changed

1 file changed

+13
-35
lines changed

reddit_decider/__init__.py

Lines changed: 13 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1006,43 +1006,33 @@ def _minimal_decider(
10061006
)
10071007

10081008
def make_object_for_context(self, name: str, span: Span) -> Decider:
1009-
# initialize rust decider from watched manifest file
1010-
rs_decider = None
1011-
try:
1012-
rs_decider = self._filewatcher.get_data()
1013-
except WatchedFileNotAvailableError as exc:
1009+
def inc_failure_counter(failure_type: str):
10141010
experiments_client_counter.labels(
10151011
operation="make_object_for_context",
10161012
success="false",
1017-
error_type="watched_file_not_available",
1013+
error_type=failure_type,
10181014
pkg_version=_pkg_version,
10191015
).inc()
10201016

1017+
# initialize rust decider from watched manifest file
1018+
rs_decider = None
1019+
try:
1020+
rs_decider = self._filewatcher.get_data()
1021+
except WatchedFileNotAvailableError as exc:
1022+
inc_failure_counter("watched_file_not_available")
10211023
logger.error(f"Experiment config file unavailable: {exc}")
10221024

10231025
# check for `span`'s presence
10241026
if span is None:
1025-
experiments_client_counter.labels(
1026-
operation="make_object_for_context",
1027-
success="false",
1028-
error_type="missing_span",
1029-
pkg_version=_pkg_version,
1030-
).inc()
1031-
1027+
inc_failure_counter("missing_span")
10321028
logger.debug("`span` is `None` in reddit_decider `make_object_for_context()`.")
10331029
return self._minimal_decider(internal=rs_decider, name=name, span=span)
10341030

10351031
# check for `span.context`'s presence
10361032
request = getattr(span, "context", None)
10371033

10381034
if request is None:
1039-
experiments_client_counter.labels(
1040-
operation="make_object_for_context",
1041-
success="false",
1042-
error_type="missing_span_context",
1043-
pkg_version=_pkg_version,
1044-
).inc()
1045-
1035+
inc_failure_counter("missing_span_context")
10461036
return self._minimal_decider(
10471037
internal=rs_decider,
10481038
name=name,
@@ -1059,14 +1049,8 @@ def make_object_for_context(self, name: str, span: Span) -> Decider:
10591049
extracted_dict=extracted_fields
10601050
)
10611051
except Exception as exc:
1062-
experiments_client_counter.labels(
1063-
operation="make_object_for_context",
1064-
success="false",
1065-
error_type="request_field_extractor",
1066-
pkg_version=_pkg_version,
1067-
).inc()
1068-
1069-
logger.info(
1052+
inc_failure_counter("request_field_extractor")
1053+
logger.error(
10701054
f"Unable to extract fields from `request_field_extractor()` in `make_object_for_context()`. details: {exc}"
10711055
)
10721056
# re-raise exception raised by `_request_field_extractor`
@@ -1174,13 +1158,7 @@ def make_object_for_context(self, name: str, span: Span) -> Decider:
11741158
extracted_fields=parsed_extracted_fields,
11751159
)
11761160
except Exception as exc:
1177-
experiments_client_counter.labels(
1178-
operation="make_object_for_context",
1179-
success="false",
1180-
error_type="DeciderContext_init_failed",
1181-
pkg_version=_pkg_version,
1182-
).inc()
1183-
1161+
inc_failure_counter("DeciderContext_init_failed")
11841162
logger.warning(
11851163
f"Could not create full DeciderContext() (defaulting to empty DeciderContext()): {exc}"
11861164
)

0 commit comments

Comments
 (0)