Skip to content

Commit 9177cac

Browse files
committed
[ELI-686] - Adding custom subsegments for xray
1 parent 1360120 commit 9177cac

5 files changed

Lines changed: 12 additions & 5 deletions

File tree

src/eligibility_signposting_api/audit/audit_service.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ def __init__(
2121
self.firehose = firehose
2222
self.audit_delivery_stream = audit_delivery_stream
2323

24+
@xray_recorder.capture("AuditService.audit")
2425
def audit(self, audit_record: dict) -> None:
2526
"""
2627
Sends an audit record to the configured Firehose delivery stream.

src/eligibility_signposting_api/repos/campaign_repo.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,12 @@ def __init__(
2525
self.s3_client = s3_client
2626
self.bucket_name = bucket_name
2727

28+
@xray_recorder.capture("CampaignRepo.get_campaign_configs")
2829
def get_campaign_configs(self) -> Generator[CampaignConfig]:
29-
campaign_objects = self.s3_client.list_objects(Bucket=self.bucket_name)
30-
for campaign_object in campaign_objects["Contents"]:
31-
response = self.s3_client.get_object(Bucket=self.bucket_name, Key=f"{campaign_object['Key']}")
32-
body = response["Body"].read()
33-
yield Rules.model_validate(json.loads(body)).campaign_config
30+
with xray_recorder.in_subsegment("CampaignRepo.get_campaign_configs:list_objects"):
31+
campaign_objects = self.s3_client.list_objects(Bucket=self.bucket_name)
32+
with xray_recorder.in_subsegment("CampaignRepo.get_campaign_configs:get_objects"):
33+
for campaign_object in campaign_objects["Contents"]:
34+
response = self.s3_client.get_object(Bucket=self.bucket_name, Key=f"{campaign_object['Key']}")
35+
body = response["Body"].read()
36+
yield Rules.model_validate(json.loads(body)).campaign_config

src/eligibility_signposting_api/repos/consumer_mapping_repo.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ def __init__(
2828
self.s3_client = s3_client
2929
self.bucket_name = bucket_name
3030

31+
@xray_recorder.capture("ConsumerMappingRepo.get_permitted_campaign_ids")
3132
def get_permitted_campaign_ids(self, consumer_id: ConsumerId) -> list[CampaignID] | None:
3233
try:
3334
response = self.s3_client.get_object(Bucket=self.bucket_name, Key=CONSUMER_MAPPING_FILE_NAME)

src/eligibility_signposting_api/repos/person_repo.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ def get_person_record(self, nhs_hash: str | None) -> Any:
5454

5555
return None
5656

57+
@xray_recorder.capture("PersonRepo.get_eligibility_data")
5758
def get_eligibility_data(self, nhs_number: NHSNumber) -> Person:
5859
# Hash using AWSCURRENT secret and fetch items
5960
items = None

src/eligibility_signposting_api/repos/secret_repo.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ def __init__(self, secret_manager: Annotated[BaseClient, Inject(qualifier="secre
1616
super().__init__()
1717
self.secret_manager = secret_manager
1818

19+
@xray_recorder.capture("SecretRepo._get_secret_by_stage")
1920
def _get_secret_by_stage(self, secret_name: str, stage: str) -> dict[str, str]:
2021
"""Internal helper to fetch a secret by version stage."""
2122
try:

0 commit comments

Comments
 (0)