Туториал по унифицированному анализу
Это пошаговое руководство по загрузке пользовательской топологии в вашу среду Ключ-АСТРОМ и созданию расширения для определения типов топологии и взаимосвязей между ними.
Затем вы можете определить экраны унифицированного анализа для анализа данных из нескольких источников, включая логи, метрики и трассировки, в едином представлении. Вы также можете включить различные источники данных и измерения, применить фильтры и детализировать информацию.
Предварительные требования
- Интерфейс командной строки Ключ-АСТРОМ
- Python 3.8 или 3.9
- Доступ к установщику пакетов pip для Python
- Установите dt-cli
| pip install dt-cli |
Для получения дополнительной информации см. раздел Расширения подписи.
- Токен со следующими правами доступа:
- Чтение записей хранилища учетных данных
credentialVault.read) - Запись записей в хранилище учетных данных (
credentialVault.write) - Чтение сущностей (
entities.read) - Запись сущностей (
entities.write) - События приема (
events.ingest) - Метрики приема (
metrics.ingest) - Логи загрузки (
logs.ingest) - Чтение расширений (
extensions.read) - Запись расширений (
extensions.write)\
- Чтение записей хранилища учетных данных
Загрузите примеры данных для мониторинга в вашу среду.
В этом примере мы используем Easy Taxis Fleet Simulator — интерактивное приложение командной строки, имитирующее парк интеллектуальных такси, передающих данные мониторинга в среду Ключ-АСТРОМ.
- В зависимости от вашей операционной системы, загрузите соответствующий файл из списка исполняемых файлов EasyTaxis и запустите его.
- Введите команду
help, чтобы отобразить список всех доступных команд. - Используйте приведенную ниже команду для запуска симуляции флота.
| start -e <your-environment-url> -t <your-api-token> |
Обязательно замените <your-environment-url> и <your-api-token> фактическими значениями.
Для получения более подробной информации об аргументах и флагах используйте команду start help.
В процессе моделирования в вашу среду Ключ-АСТРОМ поступают метрики, логи и события.
Соберите и загрузите расширение.
1. Перейдите на страницу GitHub и скачайте материалы Observability Clinic.
2. Откройте папку extensions-project-starter в предпочитаемой вами среде разработки.
3. Перейдите в папку scripts и откройте файл config.yaml. Вам необходимо заполнить три обязательных поля: URL-адрес вашей среды, токен и версию схемы.
| tenant_url: <your-environment-url>
api_token: <your-api-token> schema_version: 1.265 |
4. В указанной директории scripts выполните следующую команду для генерации сертификатов.
| python initialize.py |
Сгенерированные сертификаты теперь можно найти в папке certs.
5. Выполните следующую команду, чтобы загрузить схемы для версии 1.265.
| python download_schemas.py |
6. Перейдите в папку extension и создайте файл extension.yaml. Дополнительную информацию об области действия расширения см. в разделе YAML-файл расширения.
7. Используйте следующий пример расширения определенной топологии. Для получения дополнительной информации об области действия топологии см. руководство по WMI — пользовательская топология.
| name: custom:ua.example
version: 1.0.0 minastromkeyVersion: "1.238" author: name: Joe Doe topology: types: - enabled: true name: easytaxis:smart_fleet displayName: Smart Fleet rules: - idPattern: fleet_{fleet.id} instanceNamePattern: Smart Fleet ({fleet.id}) iconPattern: cluster sources: - sourceType: Metrics condition: $prefix(custom.easytaxis.fleet) attributes: - key: FleetID pattern: "{fleet.id}" - key: Location pattern: "{fleet.location}" role: default - idPattern: fleet_{fleet.id} instanceNamePattern: Smart Fleet ({fleet.id}) iconPattern: cluster sources: - sourceType: Metrics condition: $prefix(custom.easytaxis.taxi) - sourceType: Logs role: default - enabled: true name: easytaxis:smart_taxi displayName: Smart Taxi rules: - idPattern: taxi_{fleet.id}_{taxi.id} instanceNamePattern: Smart Taxi ({taxi.id}) sources: - sourceType: Metrics condition: $prefix(custom.easytaxis.taxi) attributes: - key: TaxiID pattern: "{taxi.id}" - key: RegistrationNumber pattern: "{taxi.registration}" - key: Class pattern: "{taxi.class}" role: default relationships: - enabled: true sources: - sourceType: Metrics condition: $prefix(custom.easytaxis) fromType: easytaxis:smart_taxi typeOfRelation: CHILD_OF toType: easytaxis:smart_fleet |
8. Выполните следующую команду, чтобы подписать расширение и загрузить его в среду.
| python build_and_upload.py |
Проверьте свой прогресс.
Теперь, если вы перейдете в Настройки > Модель топологии > Типы общего назначения, вы увидите, что были созданы типы smart_fleet и smart_taxi. Вы также можете увидеть определенную взаимосвязь между ними в разделе Общие связи.
- Список работающих сервисов Smart Fleet можно найти по адресу
<your-environment>/ui/entity/list/easytaxis:smart_fleet. - Список работающих сервисов Smart Taxi можно найти по адресу
<your-environment>/ui/entity/list/easytaxis:smart_taxi.
Настройка экранов унифицированного анализа
Теперь вы можете настраивать экраны сущностей, создав определение экрана в файле extension.yaml.
| screens:
- entityType: easytaxis:smart_fleet detailsSettings: staticContent: showProblems: true showProperties: true showTags: true showGlobalFilter: true showAddTag: true layout: autoGenerate: false cards: - type: ENTITIES_LIST key: fleet-list-taxis entitiesListCards: - key: fleet-list-taxis displayName: Taxis part of this fleet pageSize: 5 entitiesLimit: 500 displayCharts: false enableDetailsExpandability: true numberOfVisibleCharts: 2 displayIcons: true entitySelectorTemplate: type(easytaxis:smart_taxi),fromRelationships.isChildOf($(entityConditions)) columns: - type: ATTRIBUTE attribute: key: Class displayName: Class - type: ATTRIBUTE attribute: key: RegistrationNumber displayName: Registration charts: - displayName: Engine Temperature graphChartConfig: visualization: themeColor: DEFAULT seriesType: LINE metrics: - metricSelector: custom.easytaxis.taxi.engine.temperature visualizationType: GRAPH_CHART - displayName: Speed graphChartConfig: visualization: themeColor: DEFAULT seriesType: LINE metrics: - metricSelector: custom.easytaxis.taxi.speed visualizationType: GRAPH_CHART - entityType: easytaxis:smart_taxi propertiesCard: properties: - type: RELATION relation: entitySelectorTemplate: type(easytaxis:smart_fleet),toRelationships.isChildOf($(entityConditions)) displayName: Mother Fleet detailsSettings: staticContent: showTags: true showProperties: true showProblems: true showAddTag: true showGlobalFilter: true layout: autoGenerate: false cards: - type: CHART_GROUP key: taxi-metrics chartsCards: - key: taxi-metrics displayName: Smart Taxi Metrics numberOfVisibleCharts: 3 charts: - displayName: Engine Temperature graphChartConfig: visualization: themeColor: DEFAULT seriesType: LINE metrics: - metricSelector: custom.easytaxis.taxi.engine.temperature visualizationType: GRAPH_CHART - displayName: Speed graphChartConfig: visualization: themeColor: DEFAULT seriesType: LINE metrics: - metricSelector: custom.easytaxis.taxi.speed visualizationType: GRAPH_CHART - displayName: Days to revision graphChartConfig: visualization: themeColor: DEFAULT seriesType: LINE metrics: - metricSelector: custom.easytaxis.taxi.engine.daystorevision visualizationType: GRAPH_CHART listSettings: staticContent: showGlobalFilter: true layout: autoGenerate: true |
- Для объекта Smart Taxi это определение включает три диаграммы с данными о скорости, температуре цп и количестве дней до планового технического обслуживания.
- Для объекта Smart Fleet это определение включает список, входящих в него Smart Taxi. Вы можете развернуть каждый объект Smart Taxi и увидеть два графика с данными о скорости и температуре цп.