Skip to content

Commit b3ac2e7

Browse files
authored
[aws][fix] Add test for s3 storage metrics (#2059)
1 parent d690de0 commit b3ac2e7

3 files changed

+48
-1
lines changed

plugins/aws/test/resources/__init__.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import os
33
import re
44
from concurrent.futures import ThreadPoolExecutor
5+
from datetime import datetime, timezone, timedelta
56
from queue import Queue
67
from typing import Type, Any, Callable, Set, Tuple, Optional
78

@@ -139,7 +140,18 @@ def build_graph(cls: Type[AwsResourceType], region_name: Optional[str] = None) -
139140
region = AwsRegion(id=region_name, name=region_name)
140141
feedback = CoreFeedback("test", "test", "collect", Queue())
141142
account = AwsAccount(id="test", mfa_devices=12, mfa_devices_in_use=12)
142-
builder = GraphBuilder(Graph(), Cloud(id="test"), account, region, client, queue, feedback)
143+
now = datetime(2024, 5, 1, 12, 0, 0, tzinfo=timezone.utc)
144+
builder = GraphBuilder(
145+
Graph(),
146+
Cloud(id="test"),
147+
account,
148+
region,
149+
client,
150+
queue,
151+
feedback,
152+
last_run_started_at=now - timedelta(hours=1),
153+
)
154+
builder.created_at = now
143155
cls.collect_resources(builder)
144156
builder.executor.wait_for_submitted_work()
145157
return builder
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{
2+
"MetricDataResults": [
3+
{
4+
"Id": "bucketsizebytes_aws_s3_bucketname_bucket_1_storagetype_standardstorage_average",
5+
"Label": "BucketSizeBytes",
6+
"Timestamps": [ "2024-04-30T12:50:00+00:00" ],
7+
"Values": [ 1 ],
8+
"StatusCode": "Complete"
9+
},
10+
{
11+
"Id": "bucketsizebytes_aws_s3_bucketname_bucket_1_storagetype_intelligenttieringstorage_average",
12+
"Label": "BucketSizeBytes",
13+
"Timestamps": [ "2024-04-30T12:50:00+00:00" ],
14+
"Values": [ 2 ],
15+
"StatusCode": "Complete"
16+
},
17+
{
18+
"Id": "bucketsizebytes_aws_s3_bucketname_bucket_1_storagetype_standardiastorage_average",
19+
"Label": "BucketSizeBytes",
20+
"Timestamps": [ "2024-04-30T12:50:00+00:00" ],
21+
"Values": [ 3 ],
22+
"StatusCode": "Complete"
23+
}
24+
],
25+
"Messages": []
26+
}

plugins/aws/test/resources/s3_test.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,3 +60,12 @@ def validate_delete_args(aws_service: str, fn: Callable[[Any], None]) -> Any:
6060

6161
client = cast(AwsClient, SimpleNamespace(with_resource=validate_delete_args))
6262
bucket.delete_resource(client, Graph())
63+
64+
65+
def test_s3_usage_metrics() -> None:
66+
bucket, _ = round_trip_for(AwsS3Bucket)
67+
assert bucket._resource_usage["standard_storage_bucket_size_bytes"]["avg"] == 1.0
68+
assert bucket._resource_usage["intelligent_tiering_storage_bucket_size_bytes"]["avg"] == 2.0
69+
assert bucket._resource_usage["standard_ia_storage_bucket_size_bytes"]["avg"] == 3.0
70+
# This values is computed internally using the other values. If the number does not match, the logic is broken!
71+
assert bucket._resource_usage["bucket_size_bytes"]["avg"] == 6.0

0 commit comments

Comments
 (0)