|
16 | 16 | from sentry.search.eap.ourlogs.attributes import (
|
17 | 17 | LOGS_INTERNAL_TO_PUBLIC_ALIAS_MAPPINGS,
|
18 | 18 | LOGS_INTERNAL_TO_SECONDARY_ALIASES_MAPPING,
|
| 19 | + LOGS_PRIVATE_ATTRIBUTE_PREFIXES, |
19 | 20 | LOGS_PRIVATE_ATTRIBUTES,
|
20 | 21 | LOGS_REPLACEMENT_ATTRIBUTES,
|
21 | 22 | LOGS_REPLACEMENT_MAP,
|
22 | 23 | )
|
23 | 24 | from sentry.search.eap.spans.attributes import (
|
24 | 25 | SPAN_INTERNAL_TO_SECONDARY_ALIASES_MAPPING,
|
25 | 26 | SPANS_INTERNAL_TO_PUBLIC_ALIAS_MAPPINGS,
|
| 27 | + SPANS_PRIVATE_ATTRIBUTE_PREFIXES, |
26 | 28 | SPANS_PRIVATE_ATTRIBUTES,
|
27 | 29 | SPANS_REPLACEMENT_ATTRIBUTES,
|
28 | 30 | SPANS_REPLACEMENT_MAP,
|
@@ -128,6 +130,11 @@ def validate_sampling(sampling_mode: SAMPLING_MODES | None) -> DownsampledStorag
|
128 | 130 | SupportedTraceItemType.LOGS: LOGS_PRIVATE_ATTRIBUTES,
|
129 | 131 | }
|
130 | 132 |
|
| 133 | +PRIVATE_ATTRIBUTE_PREFIXES: dict[SupportedTraceItemType, set[str]] = { |
| 134 | + SupportedTraceItemType.SPANS: SPANS_PRIVATE_ATTRIBUTE_PREFIXES, |
| 135 | + SupportedTraceItemType.LOGS: LOGS_PRIVATE_ATTRIBUTE_PREFIXES, |
| 136 | +} |
| 137 | + |
131 | 138 | SENTRY_CONVENTIONS_REPLACEMENT_ATTRIBUTES: dict[SupportedTraceItemType, set[str]] = {
|
132 | 139 | SupportedTraceItemType.SPANS: SPANS_REPLACEMENT_ATTRIBUTES,
|
133 | 140 | SupportedTraceItemType.LOGS: LOGS_REPLACEMENT_ATTRIBUTES,
|
@@ -162,7 +169,10 @@ def get_secondary_aliases(
|
162 | 169 |
|
163 | 170 |
|
164 | 171 | def can_expose_attribute(attribute: str, item_type: SupportedTraceItemType) -> bool:
|
165 |
| - return attribute not in PRIVATE_ATTRIBUTES.get(item_type, {}) |
| 172 | + return attribute not in PRIVATE_ATTRIBUTES.get(item_type, {}) and not any( |
| 173 | + attribute.lower().startswith(prefix.lower()) |
| 174 | + for prefix in PRIVATE_ATTRIBUTE_PREFIXES.get(item_type, {}) |
| 175 | + ) |
166 | 176 |
|
167 | 177 |
|
168 | 178 | def handle_downsample_meta(meta: DownsampledStorageMeta) -> bool:
|
|
0 commit comments