mirror of
https://github.com/open-telemetry/opentelemetry-python-contrib.git
synced 2025-08-06 14:59:11 +08:00
Exit AWS ECS and EKS Detector container file reads early if container id found (#612)
This commit is contained in:

committed by
GitHub

parent
d14d888c71
commit
ebcdbdb660
@ -49,8 +49,10 @@ class AwsEcsResourceDetector(ResourceDetector):
|
||||
) as container_info_file:
|
||||
for raw_line in container_info_file.readlines():
|
||||
line = raw_line.strip()
|
||||
# Subsequent IDs should be the same, exit if found one
|
||||
if len(line) > _CONTAINER_ID_LENGTH:
|
||||
container_id = line[-_CONTAINER_ID_LENGTH:]
|
||||
break
|
||||
except FileNotFoundError as exception:
|
||||
logger.warning(
|
||||
"Failed to get container ID on ECS: %s.", exception
|
||||
|
@ -94,8 +94,10 @@ def _get_container_id():
|
||||
with open("/proc/self/cgroup", encoding="utf8") as container_info_file:
|
||||
for raw_line in container_info_file.readlines():
|
||||
line = raw_line.strip()
|
||||
# Subsequent IDs should be the same, exit if found one
|
||||
if len(line) > _CONTAINER_ID_LENGTH:
|
||||
container_id = line[-_CONTAINER_ID_LENGTH:]
|
||||
break
|
||||
return container_id
|
||||
|
||||
|
||||
|
@ -44,18 +44,18 @@ class AwsEcsResourceDetectorTest(unittest.TestCase):
|
||||
new_callable=mock_open,
|
||||
read_data=f"""14:name=systemd:/docker/{MockEcsResourceAttributes[ResourceAttributes.CONTAINER_ID]}
|
||||
13:rdma:/
|
||||
12:pids:/docker/{MockEcsResourceAttributes[ResourceAttributes.CONTAINER_ID]}
|
||||
11:hugetlb:/docker/{MockEcsResourceAttributes[ResourceAttributes.CONTAINER_ID]}
|
||||
10:net_prio:/docker/{MockEcsResourceAttributes[ResourceAttributes.CONTAINER_ID]}
|
||||
9:perf_event:/docker/{MockEcsResourceAttributes[ResourceAttributes.CONTAINER_ID]}
|
||||
8:net_cls:/docker/{MockEcsResourceAttributes[ResourceAttributes.CONTAINER_ID]}
|
||||
7:freezer:/docker/{MockEcsResourceAttributes[ResourceAttributes.CONTAINER_ID]}
|
||||
6:devices:/docker/{MockEcsResourceAttributes[ResourceAttributes.CONTAINER_ID]}
|
||||
5:memory:/docker/{MockEcsResourceAttributes[ResourceAttributes.CONTAINER_ID]}
|
||||
4:blkio:/docker/{MockEcsResourceAttributes[ResourceAttributes.CONTAINER_ID]}
|
||||
3:cpuacct:/docker/{MockEcsResourceAttributes[ResourceAttributes.CONTAINER_ID]}
|
||||
2:cpu:/docker/{MockEcsResourceAttributes[ResourceAttributes.CONTAINER_ID]}
|
||||
1:cpuset:/docker/{MockEcsResourceAttributes[ResourceAttributes.CONTAINER_ID]}
|
||||
12:pids:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked
|
||||
11:hugetlb:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked
|
||||
10:net_prio:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked
|
||||
9:perf_event:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked
|
||||
8:net_cls:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked
|
||||
7:freezer:/docker/
|
||||
6:devices:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked
|
||||
5:memory:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked
|
||||
4:blkio:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked
|
||||
3:cpuacct:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked
|
||||
2:cpu:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked
|
||||
1:cpuset:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked
|
||||
""",
|
||||
)
|
||||
def test_simple_create(self, mock_open_function, mock_socket_gethostname):
|
||||
|
@ -68,18 +68,18 @@ class AwsEksResourceDetectorTest(unittest.TestCase):
|
||||
new_callable=mock_open,
|
||||
read_data=f"""14:name=systemd:/docker/{MockEksResourceAttributes[ResourceAttributes.CONTAINER_ID]}
|
||||
13:rdma:/
|
||||
12:pids:/docker/{MockEksResourceAttributes[ResourceAttributes.CONTAINER_ID]}
|
||||
11:hugetlb:/docker/{MockEksResourceAttributes[ResourceAttributes.CONTAINER_ID]}
|
||||
10:net_prio:/docker/{MockEksResourceAttributes[ResourceAttributes.CONTAINER_ID]}
|
||||
9:perf_event:/docker/{MockEksResourceAttributes[ResourceAttributes.CONTAINER_ID]}
|
||||
8:net_cls:/docker/{MockEksResourceAttributes[ResourceAttributes.CONTAINER_ID]}
|
||||
7:freezer:/docker/{MockEksResourceAttributes[ResourceAttributes.CONTAINER_ID]}
|
||||
6:devices:/docker/{MockEksResourceAttributes[ResourceAttributes.CONTAINER_ID]}
|
||||
5:memory:/docker/{MockEksResourceAttributes[ResourceAttributes.CONTAINER_ID]}
|
||||
4:blkio:/docker/{MockEksResourceAttributes[ResourceAttributes.CONTAINER_ID]}
|
||||
3:cpuacct:/docker/{MockEksResourceAttributes[ResourceAttributes.CONTAINER_ID]}
|
||||
2:cpu:/docker/{MockEksResourceAttributes[ResourceAttributes.CONTAINER_ID]}
|
||||
1:cpuset:/docker/{MockEksResourceAttributes[ResourceAttributes.CONTAINER_ID]}
|
||||
12:pids:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked
|
||||
11:hugetlb:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked
|
||||
10:net_prio:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked
|
||||
9:perf_event:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked
|
||||
8:net_cls:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked
|
||||
7:freezer:/docker/
|
||||
6:devices:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked
|
||||
5:memory:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked
|
||||
4:blkio:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked
|
||||
3:cpuacct:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked
|
||||
2:cpu:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked
|
||||
1:cpuset:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked
|
||||
""",
|
||||
)
|
||||
def test_simple_create(
|
||||
|
Reference in New Issue
Block a user