Skip to content

Commit e5d0237

Browse files
committed
Add optional SERVICE_NODE_NAME config
1 parent 4b92589 commit e5d0237

File tree

3 files changed

+15
-0
lines changed

3 files changed

+15
-0
lines changed

elasticapm/base.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,8 @@ def get_service_info(self):
313313
"name": keyword_field(self.config.framework_name),
314314
"version": keyword_field(self.config.framework_version),
315315
}
316+
if self.config.service_node_name:
317+
result["node"] = {"configured_name": keyword_field(self.config.service_node_name)}
316318
self._service_info = result
317319
return result
318320

elasticapm/conf/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,7 @@ def errors(self):
249249

250250
class Config(_ConfigBase):
251251
service_name = _ConfigValue("SERVICE_NAME", validators=[RegexValidator("^[a-zA-Z0-9 _-]+$")], required=True)
252+
service_node_name = _ConfigValue("SERVICE_NODE_NAME", default=None)
252253
environment = _ConfigValue("ENVIRONMENT", default=None)
253254
secret_token = _ConfigValue("SECRET_TOKEN")
254255
debug = _BoolConfigValue("DEBUG", default=False)

tests/client/client_tests.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,18 @@ def test_service_info(elasticapm_client):
6161
assert service_info["agent"]["name"] == "python"
6262

6363

64+
@pytest.mark.parametrize(
65+
"elasticapm_client", [{"environment": "production", "service_node_name": "my_node"}], indirect=True
66+
)
67+
def test_service_info_node_name(elasticapm_client):
68+
service_info = elasticapm_client.get_service_info()
69+
assert service_info["name"] == elasticapm_client.config.service_name
70+
assert service_info["environment"] == elasticapm_client.config.environment == "production"
71+
assert service_info["language"] == {"name": "python", "version": platform.python_version()}
72+
assert service_info["agent"]["name"] == "python"
73+
assert service_info["node"]["configured_name"] == "my_node"
74+
75+
6476
def test_process_info(elasticapm_client):
6577
with mock.patch.object(sys, "argv", ["a", "b", "c"]):
6678
process_info = elasticapm_client.get_process_info()

0 commit comments

Comments
 (0)