Туториал по унифицированному анализу

Материал из Документация Ключ-АСТРОМ
Версия от 00:49, 23 января 2026; IKuznetsov (обсуждение | вклад) (Новая страница: «Это пошаговое руководство по загрузке пользовательской топологии в вашу среду Ключ-АСТ...»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)

Это пошаговое руководство по загрузке пользовательской топологии в вашу среду Ключ-АСТРОМ и созданию расширения для определения типов топологии и взаимосвязей между ними.

Затем вы можете определить экраны унифицированного анализа для анализа данных из нескольких источников, включая логи, метрики и трассировки, в едином представлении. Вы также можете включить различные источники данных и измерения, применить фильтры и детализировать информацию.

Предварительные требования

  • Интерфейс командной строки Ключ-АСТРОМ
    • 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 — интерактивное приложение командной строки, имитирующее парк интеллектуальных такси, передающих данные мониторинга в среду Ключ-АСТРОМ.

  1. В зависимости от вашей операционной системы, загрузите соответствующий файл из списка исполняемых файлов EasyTaxis и запустите его.
  2. Введите команду help, чтобы отобразить список всех доступных команд.
  3. Используйте приведенную ниже команду для запуска симуляции флота.
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 и увидеть два графика с данными о скорости и температуре цп.