Расширение данных: различия между версиями
(Новая страница: «В отличие от автоматического сбора данных с помощью ЕдиногоАгента, данные, отправляемые...») |
(нет различий)
|
Версия 00:51, 4 сентября 2025
В отличие от автоматического сбора данных с помощью ЕдиногоАгента, данные, отправляемые напрямую в АктивныйШлюз (например, API сбора данных), не дополняются автоматически информацией о хосте. Это может повлечь за собой дополнительные расходы, поскольку не будут учитываться возможные квоты DDU .
Различные варианты развертывания Ключ-АСТРОМ предоставляют несколько свойств в стиле Java и JSON-файлов с наборами атрибутов, которые можно использовать для обогащения запросов к Ключ-АСТРОМ и обеспечения возможности Ключ-АСТРОМ сопоставлять данные с вашей инфраструктурой.
Директория расширения
Ключ-АСТРОМ использует следующие директории для предоставления файлов .json и .properties с данными обогащения:
- В Unix:
/var/lib/dynatrace/enrichment - В Windows:
%ProgramData%\dynatrace\enrichment
Ключ-АСТРОМ ЕдиныйАгент
Стандартная настройка ЕдиныйАгент предоставляет следующие файлы с подробностями, специфичными для хоста, в директории расширения:
dt_host_metadata.jsondt_host_metadata.properties
Оба файла содержат один и тот же набор атрибутов ресурсов уровня хоста, которые ЕдиныйАгент использует для расширения артефактов мониторинга для данного хоста. Сюда также входят теги «ключ-значение» и свойства, заданные через oneagentctl или через удалённое управление конфигурацией.
| Если вы предоставляете телеметрические данные через каналы, отличные от ЕдиногоАгента (например, используя OpenTelemetry), важно вручную дополнить ваши телеметрические данные этими атрибутами, чтобы обеспечить правильную ассоциацию с хостом. |
Для получения дополнительной информации см. раздел Атрибуты ресурсов уровня хоста.
Пример загрузки JSON-файла см. в примере Python ниже.
Operator Ключ-АСТРОМ Kubernetes
Следующие файлы доступны в директории расширения, если включено расширение метаданных.
dt_metadata.jsondt_metadata.properties
Оба файла содержат одни и те же данные в разных форматах. Пример загрузки JSON-файла см. в примере Python ниже.
Инструкции по настройке см. в руководстве по настройке каталога обогащения .
Узнать, как обогатить все телеметрические данные, получаемые из рабочих нагрузок Kubernetes, метками и аннотациями Kubernetes.
Виртуальные файлы ЕдиногоАгента
Когда ЕдиногоАгента отслеживает ваше приложение, ваше приложение также может получить доступ к следующим виртуальным файлам:
dt_metadata_e617c525669e072eebe3d0f08212e8f2.jsondt_metadata_e617c525669e072eebe3d0f08212e8f2.properties
Эти файлы не привязаны к каталогу обогащения и физически не существуют в вашей файловой системе, а предоставляются инструментами ЕдиногоАгента. Оба файла возвращают одни и те же данные, а расширение файла (.json / .properties) определяет только формат выходных данных.
В контексте оператора Kubernetes виртуальный файл также содержит атрибуты файлов dt_metadata.{json,properties}.
Как получить доступ к виртуальным файлам
- Используйте стандартную функцию чтения файлов вашей языковой платформы, чтобы открыть и прочитать один из этих файлов:
dt_metadata_e617c525669e072eebe3d0f08212e8f2.jsondt_metadata_e617c525669e072eebe3d0f08212e8f2.propertiesВыбранное вами расширение файла имеет значение для шага 4. Используйте только имя файла и не указывайте дополнительный путь.
- Содержимое файла представляет собой одну текстовую строку с абсолютным путем к файлу (считайте это временным значением и не сохраняйте, не сохраняйте и не кэшируйте этот путь для использования в будущем).
- Откройте файл по пути, полученному на предыдущем шаге, и прочитайте все его содержимое.
- Формат содержимого, полученного в результате предыдущего чтения, будет соответствовать расширению файла, выбранному вами на шаге 1 (свойства в стиле Java или JSON).
Если на шаге 1 возвращается ошибка «файл не найден», убедитесь, что ваше приложение инструментируется ЕдинымАгентом.
Ограничения
- Поддерживается для процессов полного стека и процессов, отслеживаемых только приложениями.
statи другиеif (exists)проверки для этих файлов не пройдены. Эти проверки не требуются для работы механизма.syscallsиспользуемые напрямую для доступа к файлам, не поддерживаются. Это также означает, что приложения на Go, используемые для сбора метрик, не поддерживаются, если вы не используете ЕдиныйАгент SDK, как описано в статье Инструментирование вашего приложения Go с помощью OpenTelemetry.
Пример на Python
В следующем примере показано, как загрузить информацию об расширении в формате JSON в Python на Unix.
| # Initialize dictionary variable
enrich_attrs = dict() # Iterate over the potential data files and try reading them for name in ["dt_metadata_e617c525669e072eebe3d0f08212e8f2.json", "/var/lib/dynatrace/enrichment/dt_metadata.json", "/var/lib/dynatrace/enrichment/dt_host_metadata.json"]: try: data = '' with open(name) as f: data = json.load(f if name.startswith("/var") else open(f.read())) enrich_attrs.update(data) except: pass # An exception indicates the file was not available # Use enrich_attrs here to enrich your requests to Dynatrace. # For example, when instrumenting with OpenTelemetry, add the data as resource attributes. |
В примере кода инициализируется пустой словарь для импортированных атрибутов. Затем он перебирает массив .json имён файлов и загружает содержимое каждого файла как JSON-документ, добавляя ключи в словарь. Исключения файлов указывают на недоступность конкретного файла и игнорируются.