Skip to content

Commit

Permalink
added protobuf comparison
Browse files Browse the repository at this point in the history
  • Loading branch information
Rachel Chen authored and Rachel Chen committed Dec 11, 2024
1 parent 4cd3417 commit 963a3a8
Showing 1 changed file with 13 additions and 171 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -947,182 +947,24 @@ def test_same_column_name(self) -> None:
assert result.column_values[3].attribute_name == "tags[foo]"
assert result.column_values[3].results[0].val_str == "five"

def test_floats_calculations(self) -> None:
spans_storage = get_storage(StorageKey("eap_spans"))
start = BASE_TIME
messages = [
{
"is_segment": False,
"retention_days": 90,
"tags": {},
"sentry_tags": {"status": "success"},
"measurements": {"client_sample_rate": {"value": 0.1}},
"event_id": "df1626f2c20249368d32cbc7bedc58b6",
"organization_id": 1,
"project_id": 1,
"trace_id": "724cb5bc3e9843e39dba73c7ec2909ab",
"span_id": "3a3ff57148b14923",
"parent_span_id": "87f08db2b78848c7",
"segment_id": "b6684d253c934ea3",
"group_raw": "30cff40b57554d8a",
"profile_id": "1f2e11173706458f9010599631234fc4",
"start_timestamp_ms": int(start.timestamp()) * 1000
- int(random.gauss(1000, 200)),
"start_timestamp_precise": start.timestamp(),
"end_timestamp_precise": start.timestamp() + 1,
"received": 1721319572.877828,
"duration_ms": 152,
"exclusive_time_ms": 0.228,
"description": "foo",
"ingest_in_eap": True,
},
{
"is_segment": False,
"retention_days": 90,
"tags": {},
"sentry_tags": {"status": "success"},
"measurements": {"client_sample_rate": {"value": 0.85}},
"event_id": "9ca81e2a30f94b22b1a8fd318e69e49e",
"organization_id": 1,
"project_id": 1,
"trace_id": "b7c9905686464d8d89e7d2aa95b5291a",
"span_id": "49ea9f85b8d94f87",
"parent_span_id": "4dcdde0710254636",
"segment_id": "d433c990ed9343e3",
"group_raw": "90c542ffb67b4629",
"profile_id": "16e664cce531405bae63834adc6aee80",
"start_timestamp_ms": int(start.timestamp()) * 1000
- int(random.gauss(1000, 200)),
"start_timestamp_precise": start.timestamp(),
"end_timestamp_precise": start.timestamp() + 1,
"received": 1721319572.877828,
"duration_ms": 152,
"exclusive_time_ms": 0.228,
"description": "bar",
"ingest_in_eap": True,
},
]
write_raw_unprocessed_events(spans_storage, messages) # type: ignore

ts = Timestamp(seconds=int(BASE_TIME.timestamp()))
hour_ago = Timestamp(seconds=int((BASE_TIME - timedelta(hours=1)).timestamp()))
err_req = {
"meta": {
"organizationId": 1,
"referrer": "api.organization-events",
"projectIds": [1],
"startTimestamp": hour_ago.ToJsonString(),
"endTimestamp": ts.ToJsonString(),
},
"columns": [
{
"aggregation": {
"aggregate": "FUNCTION_AVERAGE",
"key": {"type": "TYPE_FLOAT", "name": "sentry.sampling_factor"},
"label": "avg_sample(sampling_rate)",
"extrapolationMode": "EXTRAPOLATION_MODE_NONE",
},
"label": "avg_sample(sampling_rate)",
},
{
"aggregation": {
"aggregate": "FUNCTION_MIN",
"key": {"type": "TYPE_FLOAT", "name": "sentry.sampling_factor"},
"label": "min(sampling_rate)",
"extrapolationMode": "EXTRAPOLATION_MODE_SAMPLE_WEIGHTED",
},
"label": "min(sampling_rate)",
},
def test_single_float_comparison(self) -> None:
protobuf_with_float = TraceItemColumnValues(
attribute_name="blah",
results=[
AttributeValue(val_float=0.123456),
],
"limit": 101,
}

err_msg = ParseDict(err_req, TraceItemTableRequest())
result = EndpointTraceItemTable().execute(err_msg)
)

# this passes
assert result.column_values == [
TraceItemColumnValues(
attribute_name="avg_sample(sampling_rate)",
results=[
AttributeValue(val_float=0.475),
],
),
TraceItemColumnValues(
attribute_name="min(sampling_rate)",
results=[
AttributeValue(val_float=0.1),
],
),
]

# these error
# assert result.column_values[0].attribute_name == "avg_sample(sampling_rate)"
# assert result.column_values[0].results[0].val_float == 0.475
#
# assert result.column_values[1].attribute_name == "min(sampling_rate)"
# assert result.column_values[1].results[0].val_float == 0.1

def test_single_float_retrieval(self) -> None:
spans_storage = get_storage(StorageKey("eap_spans"))
start = BASE_TIME
messages = [
{
"is_segment": False,
"retention_days": 90,
"tags": {},
"sentry_tags": {"status": "success"},
"measurements": {"client_sample_rate": {"value": 0.123456}},
"event_id": "df1626f2c20249368d32cbc7bedc58b6",
"organization_id": 1,
"project_id": 1,
"trace_id": "724cb5bc3e9843e39dba73c7ec2909ab",
"span_id": "3a3ff57148b14923",
"parent_span_id": "87f08db2b78848c7",
"segment_id": "b6684d253c934ea3",
"group_raw": "30cff40b57554d8a",
"profile_id": "1f2e11173706458f9010599631234fc4",
"start_timestamp_ms": int(start.timestamp()) * 1000
- int(random.gauss(1000, 200)),
"start_timestamp_precise": start.timestamp(),
"end_timestamp_precise": start.timestamp() + 1,
"received": 1721319572.877828,
"duration_ms": 152,
"exclusive_time_ms": 0.228,
"description": "foo",
"ingest_in_eap": True,
},
]
write_raw_unprocessed_events(spans_storage, messages) # type: ignore

ts = Timestamp(seconds=int(BASE_TIME.timestamp()))
hour_ago = Timestamp(seconds=int((BASE_TIME - timedelta(hours=1)).timestamp()))
err_req = {
"meta": {
"organizationId": 1,
"referrer": "api.organization-events",
"projectIds": [1],
"startTimestamp": hour_ago.ToJsonString(),
"endTimestamp": ts.ToJsonString(),
},
"columns": [
{
"key": {"type": "TYPE_FLOAT", "name": "sentry.sampling_factor"},
},
assert protobuf_with_float == TraceItemColumnValues(
attribute_name="blah",
results=[
AttributeValue(val_float=0.123456),
],
}

err_msg = ParseDict(err_req, TraceItemTableRequest())
result = EndpointTraceItemTable().execute(err_msg)
)

assert result.column_values == [
TraceItemColumnValues(
attribute_name="sentry.sampling_factor",
results=[
AttributeValue(val_float=0.123456),
],
),
]
# this should NOT pass
assert protobuf_with_float.results[0].val_float != 0.123456


class TestUtils:
Expand Down

0 comments on commit 963a3a8

Please sign in to comment.