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