|
| 1 | +import dataclasses |
1 | 2 | from dataclasses import dataclass |
2 | 3 | from datetime import datetime |
3 | | -from typing import List |
4 | | -from typing import Mapping |
5 | | -from typing import Optional |
| 4 | +from typing import List, Dict, Mapping, Optional |
6 | 5 | from urllib.parse import urlparse |
7 | 6 |
|
8 | 7 | from pyctuator.environment.environment_provider import EnvironmentData, EnvironmentProvider |
@@ -56,9 +55,11 @@ def __init__( |
56 | 55 | pyctuator_endpoint_url: str, |
57 | 56 | logfile_max_size: int, |
58 | 57 | logfile_formatter: str, |
| 58 | + additional_app_info: Optional[dict], |
59 | 59 | ): |
60 | 60 | self.app_info = app_info |
61 | 61 | self.pyctuator_endpoint_url = pyctuator_endpoint_url |
| 62 | + self.additional_app_info = additional_app_info |
62 | 63 |
|
63 | 64 | self.metrics_providers: List[MetricsProvider] = [] |
64 | 65 | self.health_providers: List[HealthProvider] = [] |
@@ -135,3 +136,11 @@ def get_metric_measurement(self, metric_name: str) -> Metric: |
135 | 136 |
|
136 | 137 | def get_thread_dump(self) -> ThreadDump: |
137 | 138 | return self.thread_dump_provider.get_thread_dump() |
| 139 | + |
| 140 | + def get_app_info(self) -> Dict: |
| 141 | + app_info_dict = {k: v for (k, v) in dataclasses.asdict(self.app_info).items() if v} |
| 142 | + |
| 143 | + if self.additional_app_info: |
| 144 | + app_info_dict = {**app_info_dict, **self.additional_app_info} |
| 145 | + |
| 146 | + return app_info_dict |
0 commit comments