Skip to content

Commit aa72770

Browse files
graphaellibeniwohli
authored andcommitted
added test for hostname detection if k8s metadata is set via environment
1 parent 7585e0a commit aa72770

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

tests/client/client_tests.py

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ def test_docker_kubernetes_system_info(elasticapm_client):
6969
)
7070
def test_docker_kubernetes_system_info_from_environ():
7171
# initialize agent only after overriding environment
72-
elasticapm_client = Client()
72+
elasticapm_client = Client(metrics_interval="0ms")
7373
# mock docker/kubernetes data here to get consistent behavior if test is run in docker
7474
with mock.patch("elasticapm.utils.cgroup.get_cgroup_container_metadata") as mock_metadata:
7575
mock_metadata.return_value = {}
@@ -93,7 +93,7 @@ def test_docker_kubernetes_system_info_from_environ():
9393
)
9494
def test_docker_kubernetes_system_info_from_environ_overrides_cgroups():
9595
# initialize agent only after overriding environment
96-
elasticapm_client = Client()
96+
elasticapm_client = Client(metrics_interval="0ms")
9797
# mock docker/kubernetes data here to get consistent behavior if test is run in docker
9898
with mock.patch("elasticapm.utils.cgroup.get_cgroup_container_metadata") as mock_metadata, mock.patch(
9999
"socket.gethostname"
@@ -110,6 +110,21 @@ def test_docker_kubernetes_system_info_from_environ_overrides_cgroups():
110110
assert system_info["container"] == {"id": "123"}
111111

112112

113+
@mock.patch.dict("os.environ", {"KUBERNETES_NAMESPACE": "namespace"})
114+
def test_docker_kubernetes_system_info_except_hostname_from_environ():
115+
# initialize agent only after overriding environment
116+
elasticapm_client = Client(metrics_interval="0ms")
117+
# mock docker/kubernetes data here to get consistent behavior if test is run in docker
118+
with mock.patch("elasticapm.utils.cgroup.get_cgroup_container_metadata") as mock_metadata, mock.patch(
119+
"socket.gethostname"
120+
) as mock_gethostname:
121+
mock_metadata.return_value = {}
122+
mock_gethostname.return_value = "foo"
123+
system_info = elasticapm_client.get_system_info()
124+
assert "kubernetes" in system_info
125+
assert system_info["kubernetes"] == {"pod": {"name": "foo"}, "namespace": "namespace"}
126+
127+
113128
def test_config_by_environment():
114129
with mock.patch.dict("os.environ", {"ELASTIC_APM_SERVICE_NAME": "envapp", "ELASTIC_APM_SECRET_TOKEN": "envtoken"}):
115130
client = Client(metrics_interval="0ms")

0 commit comments

Comments
 (0)