From 73ab61f6e596cd507164a437e6224c80d55849d9 Mon Sep 17 00:00:00 2001 From: Simon Hellmayr Date: Wed, 24 Jul 2024 11:02:47 +0200 Subject: [PATCH 1/2] feat(metrics): add full config update to audit log for span attribute extraction rules --- .../project_metrics_extraction_rules.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/sentry/api/endpoints/project_metrics_extraction_rules.py b/src/sentry/api/endpoints/project_metrics_extraction_rules.py index 0726674e41d13e..9d456ee54f4a1b 100644 --- a/src/sentry/api/endpoints/project_metrics_extraction_rules.py +++ b/src/sentry/api/endpoints/project_metrics_extraction_rules.py @@ -62,7 +62,9 @@ def has_feature(self, organization, request): "organizations:custom-metrics-extraction-rule", organization, actor=request.user ) - def _create_audit_entry(self, event: str, project: Project, span_attribute: str): + def _create_audit_entry( + self, event: str, project: Project, span_attribute: str, config_update: str + ): self.create_audit_entry( request=self.request, organization=project.organization, @@ -71,6 +73,7 @@ def _create_audit_entry(self, event: str, project: Project, span_attribute: str) data={ "span_attribute": span_attribute, "project_slug": project.slug, + "config_update": config_update, }, ) @@ -91,7 +94,10 @@ def delete(self, request: Request, project: Project) -> Response: ) for config in config_update: self._create_audit_entry( - "SPAN_BASED_METRIC_DELETE", project, config["spanAttribute"] + "SPAN_BASED_METRIC_DELETE", + project, + config["spanAttribute"], + str(config_update), ) return Response(status=204) @@ -142,7 +148,7 @@ def post(self, request: Request, project: Project) -> Response: ) for config in configs: self._create_audit_entry( - "SPAN_BASED_METRIC_CREATE", project, config.span_attribute + "SPAN_BASED_METRIC_CREATE", project, config.span_attribute, config_update ) persisted_config = serialize( @@ -167,7 +173,9 @@ def put(self, request: Request, project: Project) -> Response: project_id=project.id, trigger="span_attribute_extraction_configs" ) for config in configs: - self._create_audit_entry("SPAN_BASED_METRIC_UPDATE", project, config.span_attribute) + self._create_audit_entry( + "SPAN_BASED_METRIC_UPDATE", project, config.span_attribute, config_update + ) persisted_config = serialize( configs, From 47e550c5565bb86e03404e0413539c2a1a88675a Mon Sep 17 00:00:00 2001 From: Simon Hellmayr Date: Wed, 24 Jul 2024 11:03:52 +0200 Subject: [PATCH 2/2] cast str --- .../api/endpoints/project_metrics_extraction_rules.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/sentry/api/endpoints/project_metrics_extraction_rules.py b/src/sentry/api/endpoints/project_metrics_extraction_rules.py index 9d456ee54f4a1b..9cb2ef4464261f 100644 --- a/src/sentry/api/endpoints/project_metrics_extraction_rules.py +++ b/src/sentry/api/endpoints/project_metrics_extraction_rules.py @@ -148,7 +148,10 @@ def post(self, request: Request, project: Project) -> Response: ) for config in configs: self._create_audit_entry( - "SPAN_BASED_METRIC_CREATE", project, config.span_attribute, config_update + "SPAN_BASED_METRIC_CREATE", + project, + config.span_attribute, + str(config_update), ) persisted_config = serialize( @@ -174,7 +177,7 @@ def put(self, request: Request, project: Project) -> Response: ) for config in configs: self._create_audit_entry( - "SPAN_BASED_METRIC_UPDATE", project, config.span_attribute, config_update + "SPAN_BASED_METRIC_UPDATE", project, config.span_attribute, str(config_update) ) persisted_config = serialize(