def test_docker_kubernetes_system_info_from_environ_overrides_cgroups():
    # initialize agent only after overriding environment
    zuqa_client = TempStoreClient(metrics_interval="0ms")
    # mock docker/kubernetes data here to get consistent behavior if test is run in docker
    with mock.patch("zuqa.utils.cgroup.get_cgroup_container_metadata"
                    ) as mock_metadata, mock.patch(
                        "socket.gethostname") as mock_gethostname:
        mock_metadata.return_value = {
            "container": {
                "id": "123"
            },
            "kubernetes": {
                "pod": {
                    "uid": "456"
                }
            }
        }
        mock_gethostname.return_value = "foo"
        system_info = zuqa_client.get_system_info()
    assert "kubernetes" in system_info

    assert system_info["kubernetes"] == {
        "pod": {
            "uid": "podid",
            "name": "pod"
        },
        "node": {
            "name": "node"
        },
        "namespace": "namespace",
    }
    assert system_info["container"] == {"id": "123"}
Example #2
0
def test_docker_kubernetes_system_info_except_hostname_from_environ():
    # initialize agent only after overriding environment
    elasticapm_client = TempStoreClient(metrics_interval="0ms")
    # mock docker/kubernetes data here to get consistent behavior if test is run in docker
    with mock.patch("elasticapm.utils.cgroup.get_cgroup_container_metadata") as mock_metadata, mock.patch(
        "socket.gethostname"
    ) as mock_gethostname:
        mock_metadata.return_value = {}
        mock_gethostname.return_value = "foo"
        system_info = elasticapm_client.get_system_info()
    assert "kubernetes" in system_info
    assert system_info["kubernetes"] == {"pod": {"name": "foo"}, "namespace": "namespace"}