Переходы и навигация
Переходы и навигация
Этот документ объясняет, как создавать и использовать ссылки-переходы на основе интентов или URL-адресов в Дашбордах или Блокнотах. Ссылки-переходы позволяют перемещаться между дашбордами, блокнотами, приложениями Ключ-АСТРОМ или внешними системами, сохраняя контекст.
Следующие возможности упрощают рабочие процессы, обеспечивая более глубокий анализ в несколько кликов и позволяя легко исследовать проблемы или связанные данные прямо из визуализаций. Далее мы рассмотрим варианты использования, чтобы объяснить концепции и показать, как всё настроить.
Варианты использования
Вы можете детализировать связанные данные в Ключ-АСТРОМ или во внешних системах, передавая соответствующий контекст. В зависимости от варианта использования можно передавать контекст автоматически (с помощью Открыть с помощью на основе интентов) или вручную (через настраиваемые ссылки на дашборды или внешние системы).
Автоматическая передача контекста: изучение деталей в приложениях Ключ-АСТРОМ
Используйте автоматическую передачу контекста для быстрого исследования данных без ручной настройки.
Например:
- Исследуйте строки логов, чтобы выявить закономерности.
- Изучайте трассировки или спаны, чтобы точно определить проблемы.
- Просматривайте подробную информацию о хосте.
Возможности автоматической передачи контекста:
- Открыть с помощью открывает выбранный элемент в другом приложении Ключ-АСТРОМ.
- Предлагаемые приложения — это ссылки на приложения Ключ-АСТРОМ, автоматически добавляемые в меню на основе выбранного элемента.
Ручная передача контекста: ссылки на внешние системы или дашборды
Используйте ручную передачу контекста, если нужно сослаться на внешние инструменты или вручную настроить переходы в дашборде или блокноте.
Например:
- Ссылка на внешние системы: интегрируйтесь с такими инструментами, как ServiceNow, Jira или GitHub, передавая в ссылку соответствующие идентификаторы — например, ID инцидента ServiceNow или ID задачи Jira.
- Ссылка на другой дашборд или блокнот: свяжите обзорный дашборд (например, показывающий несколько сервисов) с детальным, посвящённым одному сервису или приложению.
Возможности ручной передачи контекста:
- Ссылка из меню визуализации через настраиваемые ссылки в UI.
- Ссылка из таблицы через столбец Markdown.
Формат URL определяет, открывать ли новую вкладку
При использовании этих возможностей для ссылки на другой дашборд или блокнот выбранный формат URL определяет, открывать ли цель в новой вкладке:
- Чтобы открыть цель в новой вкладке, используйте:
https://<your-environment>/ui/[dashboards|notebooks]/... (обязательно замените <your-environment>)
- Чтобы открыть цель в той же вкладке, начните ссылку с:
/ui/[dashboards|notebooks]/... (без https://<your-environment>)
Открыть с помощью
Для навигации между приложениями на платформе Ключ-АСТРОМ можно использовать Открыть с помощью, сохраняя контекст, например выбранный временной диапазон, сущности или фильтры. При выборе Открыть с помощью открывается окно со списком действий, которые можно выполнить в других приложениях. Доступные действия зависят от того, может ли целевое приложение работать с данными (полями), предоставленными исходным приложением, и какие приложения установлены в вашей среде.
Вы можете использовать Открыть с помощью на разных уровнях: для раздела в блокноте, плитки в дашборде или даже конкретной точки данных или её базовых полей. Чем глубже вы спускаетесь — от плитки к точке данных или от точки данных к её базовым полям — тем конкретнее становится контекст, то есть в целевое приложение передаётся меньше полей.
Например, если вы выберете строку в таблице, содержащую поле dt.smartscape.host (ID хоста), и затем выберете Открыть с помощью, вы увидите опцию Перейти к хосту. Это потому, что целевое приложение, приложение Infrastructure & Operations, может обрабатывать поле dt.smartscape.host.
Если вы разрабатываете приложения Ключ-АСТРОМ, см. Intents, чтобы узнать всё о передаче пользовательского потока из одного приложения в другое.
Общее использование
Чтобы использовать Открыть с помощью с плиткой или разделом:
- В дашборде или блокноте выберите плитки или разделы, которые хотите использовать в другом приложении. При необходимости можно выбрать несколько элементов одновременно.
- Откройте меню и выберите Открыть с помощью.
- В окне Открыть с помощью выберите действие, предоставляемое приложением, для перехода с сохранением контекста.
Приложение открывается, обрабатывая контекст (поля), переданный из плиток или разделов. Что произойдёт дальше, зависит от действия и того, как приложение использует данные.
Примеры
Ниже приведены лишь несколько распространённых способов использования Открыть с помощью для передачи информации между приложениями Ключ-АСТРОМ.
Из блокнота в дашборд
Чтобы скопировать раздел блокнота в дашборд (как плитку дашборда):
- В блокноте выберите раздел блокнота, который хотите скопировать в дашборд.
- Откройте меню и выберите Дашборды > Добавить на дашборд.
- В разделе Выбрать назначение:
- Если хотите создать новый дашборд с выбранным разделом блокнота в качестве плитки, выберите Новый дашборд.
- Если хотите добавить выбранный раздел блокнота как ещё одну плитку в существующий дашборд, выберите существующий дашборд из списка и нажмите Подтвердить.
- Дашборд откроется с выбранным разделом, скопированным в него как плитка дашборда.
Чтобы скопировать раздел блокнота в другое приложение (не Дашборды), откройте меню и выберите Открыть с помощью, а затем выберите целевое приложение.
Из дашборда в блокнот
Чтобы скопировать плитку дашборда в блокнот (как раздел блокнота):
- В дашборде выберите плитку, которую хотите скопировать в блокнот.
- Откройте меню и выберите Блокноты > Добавить в блокнот.
- В разделе Выбрать назначение:
- Если хотите создать новый блокнот с выбранной плиткой дашборда в качестве раздела, выберите Новый блокнот.
- Если хотите добавить выбранную плитку дашборда как ещё один раздел в существующий блокнот, выберите существующий блокнот из списка и нажмите Подтвердить.
- Блокнот откроется с выбранной плиткой, скопированной в него как раздел блокнота.
Чтобы скопировать плитку дашборда в другое приложение (не Блокноты), откройте меню и выберите Открыть с помощью, а затем выберите целевое приложение.
Из запроса дашборда в Workflows
Чтобы скопировать запрос из дашборда в Workflows как задачу в рабочем процессе:
- В дашборде выберите плитку запроса, которую хотите скопировать в рабочий процесс.
- Выберите Открыть с помощью.
- В окне Открыть с помощью выберите опцию Автоматизировать запрос DQL в Workflows.
- Workflows откроется с выбранным запросом, добавленным как задача рабочего процесса.
- При необходимости отредактируйте рабочий процесс.
Предлагаемые ссылки приложений
Предлагаемые ссылки приложений — это расширение Открыть с помощью, добавленное для оптимизации рабочего процесса. На основе данных ваших плиток/разделов и точки данных или полей в вашем выборе Ключ-АСТРОМ автоматически определяет наиболее подходящую комбинацию действия и приложения и добавляет её прямо в соответствующее меню.
Например, когда в данных есть поле ID хоста, вы увидите опцию Перейти к хосту над Открыть с помощью в меню.
Ссылка из визуализации через настраиваемые ссылки
Функция Добавить ссылку позволяет создавать ссылки в UI прямо из визуализаций и переходить к внешним системам, дашбордам, блокнотам или другим ресурсам. С её помощью можно:
- Добавлять ссылки из меню визуализации, что обеспечивает быструю настройку без выхода из визуализации.
- Управлять ссылками в разделе Ссылки на вкладке визуализации, где можно:
- Добавлять новые ссылки.
- Редактировать или удалять существующие ссылки.
- Изменять порядок ссылок, при этом изменения отражаются в меню визуализации.
Добавление ссылок и управление ими
Функция Добавить ссылку позволяет создавать ссылки прямо из визуализаций. Эти ссылки могут вести к внешним системам, другим приложениям Ключ-АСТРОМ или ресурсам, обеспечивая бесшовную передачу контекста для более быстрой диагностики и анализа.
Добавить ссылку
- Откройте раздел Ссылки на вкладке визуализации выбранной визуализации.
- Выберите Добавить ссылку.
- Настройте ссылку:
- Имя: введите описательное имя, например «Перейти к хосту», для отображения в меню.
- Значок: выберите значок, например «Логи», для представления ссылки в меню.
- URL: используйте динамические плейсхолдеры для вставки полей данных или переменных. Например, выберите Вставить плейсхолдер и добавьте плейсхолдер
:nameв URL, напримерhttps://myhost/host=Name.
- Используйте раздел Предварительный просмотр внизу, чтобы увидеть, как плейсхолдеры заменяются фактическими данными, и проверить ссылку.
- Выберите Добавить ссылку, чтобы сохранить. Теперь ссылка появится в меню подсказки визуализации.
Управление ссылками Используйте раздел Ссылки для управления и организации ссылок:
- Редактировать: чтобы обновить существующую ссылку, выберите её (или выберите Редактировать в меню) или просто выберите имя.
- Дублировать: чтобы скопировать существующую ссылку, выберите Дублировать в меню.
- Удалить: чтобы удалить ссылку, выберите её и выберите Удалить в меню.
- Изменить порядок: настройте порядок отображения ссылок, перетаскивая их определения вверх или вниз в списке в разделе Ссылки.
Использование динамических плейсхолдеров
Динамические плейсхолдеры позволяют создавать ссылки, которые адаптируются к данным в вашей визуализации. Они динамически заполняют URL-адреса контекстно-зависимыми данными, такими как временные диапазоны, значения метрик или сущности, например хосты.
В зависимости от варианта использования можно применять один из трёх типов плейсхолдеров:
- Плейсхолдеры точек данных динамически разрешают значения на основе конкретной точки данных, по которой выполняется клик. Эти плейсхолдеры особенно полезны в визуализациях на основе времени или сегментированных. Следующие плейсхолдеры доступны из коробки:
:name: имя точки данных (например, имя серии на линейном графике, обычно отображаемое в легенде).:value: значение точки данных (например, значение в точке, по которой выполнен клик на линейном графике).:from: начальная временная метка временного слота, который представляет значение (для визуализаций на основе времени).:to: конечная временная метка временного слота, который представляет значение.- Пример: на линейном графике, сегментированном по хосту, выбор конкретной точки данных может разрешить плейсхолдер
:nameв имя хоста, а плейсхолдер:value— в значение метрики в этот момент времени.
- Существующие переменные позволяют ссылаться на существующие переменные, определённые в вашем дашборде.
- Пример: используйте
$variableName, чтобы передать выбранное пользователем значение в ссылку.
- Пример: используйте
- Существующие поля позволяют ссылаться на полный набор данных, возвращённый в результате визуализации. В отличие от плейсхолдеров точек данных, которые представляют одну точку данных, существующие поля предоставляют доступ ко всему набору данных (например, все точки в серии или все значения столбца в таблице).
- Пример: если запрос метрики возвращает массив значений, можно использовать плейсхолдер поля для ссылки на весь массив.
Чтобы использовать плейсхолдеры в ссылках:
- Начните вводить
{{при редактировании URL, чтобы отобразить меню предложений плейсхолдеров:{{:отображает все доступные плейсхолдеры.{{$:отображает существующие переменные.{{::отображает все плейсхолдеры точек данных.
- Либо выберите Вставить плейсхолдер, чтобы выбрать плейсхолдеры из раскрывающегося меню.
Кодирование ссылок и значений плейсхолдеров
Во избежание ошибок кодирование гарантирует корректную работу URL-адресов, если они содержат специальные символы, такие как пробелы, амперсанды или зарезервированные символы. Ни статические части ссылок, ни динамические плейсхолдеры не кодируются автоматически, поэтому нужно обрабатывать кодирование вручную, чтобы избежать проблем.
Статические части URL Статические части URL необходимо кодировать вручную, если они содержат специальные символы. Например, заменяйте пробелы на %20, амперсанды & на %26 и другие зарезервированные символы по мере необходимости.
Используйте бесплатный инструмент, например URL Encoder/Decoder, чтобы закодировать статические URL-адреса перед вставкой в поле URL.
Динамические плейсхолдеры Динамические плейсхолдеры не кодируются автоматически. Если значения плейсхолдеров могут содержать специальные символы, можно использовать функции языка запросов DQL для их правильного кодирования. Обычно используемые функции DQL включают:
encodeUrl(): кодирует весь URL.escape(): экранирует зарезервированные символы.replaceString(): заменяет определённые символы (например, преобразует+в%20).
Пример: кодирование поля лога для обеспечения безопасности URL:
fetch logs
| summarize occurences=count(), by:{content}
| fieldsAdd contentEncoded = replaceString(escape(encodeUrl(content)), "+", "%20")
| fields contentEncoded, occurences
Поддерживаемые визуализации и поведение ссылок
Таблица Ссылки видимы для каждого столбца, что позволяет взаимодействовать с отдельными точками данных, используя другие. Например, выбор ссылки в столбце Статус может использовать значение другого поля при переходе.
Неподдерживаемые визуализации
- Визуализации карт, такие как Choropleth, Dot, Connection и Bubble.
- Все остальные визуализации.
Для визуализаций с разбиением данных (например, линейные графики по хосту) ссылки динамически адаптируются на основе серии данных. Например, использование плейсхолдера Name на линейном графике, сегментированном по хосту, заменит плейсхолдер на соответствующее имя хоста для каждой серии (линии).
Ссылка из таблицы через столбец Markdown
Таблицы в Ключ-АСТРОМ предоставляют мощный способ отображения данных и включают кликабельные ссылки для бесшовной навигации. Ссылки в таблицах можно добавлять на трёх уровнях сложности:
- Базовый: автоматически обнаруживаемые необработанные ссылки: автоматически отображают необработанные URL-адреса как кликабельные ссылки.
- Промежуточный: ссылки с отображаемым именем: используйте форматирование столбца Markdown, чтобы переименовать ссылки для лучшей читаемости.
- Продвинутый: ссылки на основе интентов: используйте язык запросов DQL для динамического создания ссылок на основе интентов с закодированными параметрами для продвинутой навигации к другим приложениям в Ключ-АСТРОМ.
Следующие шаги проведут вас через эти уровни сложности на одном примере, который строится постепенно.
Базовый: автоматически обнаруживаемые необработанные ссылки
Ключ-АСТРОМ автоматически обнаруживает URL-адреса в ячейках таблицы и отображает их как кликабельные ссылки, когда тип столбца ячейки установлен в Markdown.
Чтобы включить обнаружение ссылок:
- Начните с визуализации Таблица в Ключ-АСТРОМ.
- Перейдите на вкладку Визуальный.
- В разделе Столбцы выберите Тип столбца, чтобы добавить новый тип столбца. Выберите столбец с необработанными ссылками и установите тип столбца Markdown.
Пример: вот простой набор данных с URL-адресами, который можно попробовать в тестовой среде Ключ-АСТРОМ:
data record(website="Astromkey main page", link="http://www.astromkey.com"), record(website="Astromkey community", link="https://community.astromkey.com/")
Промежуточный: ссылки с отображаемым именем
Чтобы сделать ссылки более удобными для пользователя, можно указать отображаемое имя (например, «Astromkey main page») с помощью форматирования Markdown. Это заменяет необработанные URL-адреса описательными метками, которые легче читать и понимать.
Чтобы предоставить удобные для пользователя ссылки:
- Настройте ваш DQL, чтобы создать новый столбец, форматирующий ссылки в синтаксисе Markdown.
- Используйте функцию
fieldsAddдля создания составного поля, напримерmarkdownLink, в формате[Отображаемое имя](URL). - Используйте функцию
concat()в DQL для удобного построения такого поля (см. следующий пример).
- Используйте функцию
- Перейдите на вкладку Визуальный.
- В разделе Столбцы выберите Тип столбца, чтобы добавить новый тип столбца. Выберите столбец с необработанными ссылками и установите тип столбца Markdown. Например,
markdownLink.
Пример: вот набор данных с URL-адресами и нотацией Markdown, который можно попробовать в тестовой среде Ключ-АСТРОМ:
data record(website="Astromkey main page", link="http://www.astromkey.com"),
record(website="Astromkey community", link="https://community.astromkey.com/")
| fieldsAdd markdownLink = concat("[", website, "](", link, ")")
Продвинутый: ссылки на основе интентов
Ссылки на основе интентов поднимают создание ссылок на новый уровень, динамически передавая контекст (например, коды ошибок, временные диапазоны или другие фильтры) в другие приложения Ключ-АСТРОМ для продвинутых рабочих процессов. Это делается с помощью языка запросов DQL и правильного кодирования URL для обработки специальных символов.
В этом разделе мы пошагово рассмотрим генерацию динамических ссылок на основе интентов с помощью DQL. Полученные ссылки будут включать:
- Удобное для пользователя отображаемое имя, построенное в формате Markdown.
- Динамические параметры, такие как коды ошибок и временные диапазоны, для адаптации ссылки к последующей навигации.
- Правильное кодирование специальных символов в параметрах запроса URL.
Чтобы создать ссылки на основе интентов:
Извлеките базовые данные Используйте DQL для извлечения соответствующего набора данных и фильтрации содержимого по мере необходимости. Например, можно получить логи, соответствующие определённым кодам ошибок:
fetch logs
| filter matchesPhrase(content, "failed to complete the order: rpc error: code") and status == "ERROR"
| parse content, """DATA 'desc = ' LD:errorCode ' '"""
| summarize total = count(), by:{errorCode}Добавьте базовый URL целевого приложения Определите базовый URL приложения Ключ-АСТРОМ, на которое вы ссылаетесь. В данном случае мы связываем логи с приложением Логи:
| fieldsAdd LogAppURL = "/ui/apps/astromkey.logs/#"
Закодируйте компоненты запроса Чтобы создать правильную ссылку на основе интентов, используйте функцию encodeUrl() для кодирования каждой части URL. Разбейте запрос на компоненты для ясности.
- Фильтр запроса: отфильтруйте логи, соответствующие определённым кодам ошибок:
| fieldsAdd QueryPart1 = """{"version":0,"data":{"queryConfig":{"query":"fetch logs\n| filter matchesPhrase(content,\"\"\""""
| fieldsAdd QueryPart1 = encodeUrl(QueryPart1)
| fieldsAdd QueryPart1 = replaceString(QueryPart1, "+", "%20")
- Динамическое значение поля: закодируйте коды ошибок динамически:
| fieldsAdd QueryPart2 = escape(errorCode) | fieldsAdd QueryPart2 = encodeUrl(QueryPart2) | fieldsAdd QueryPart2 = replaceString(QueryPart2, "+", "%20")
- Временной диапазон: закодируйте временной диапазон дашборда:
| fieldsAdd QueryTimeFrame = """\"\"\") ","timeframe":{"from":$dt_timeframe_from,"to":$dt_timeframe_to},"filter":{"version":"12.2.4","subQueries":[{"id":"A","isEnabled":true,"datatype":"logs","filter":""}],"globalCommands":{"sort":{"field":"timestamp","direction":"desc"}}},"segments":[],"showDqlEditor":true},"tableConfig":{"visibleColumns":["timestamp","status","content"],"columnAttributes":{"columnWidths":{},"lineWraps":{},"tableLineWrap":false},"columnOrder":["timestamp","status","content"]}}}"""Создайте финальную ссылку. Объедините базовый URL, компоненты запроса и форматирование Markdown в удобную для пользователя ссылку:
| fieldsAdd errorCodeLink = concat("[", errorCode, "](", LogAppURL, QueryPart1, QueryPart2, QueryTimeFrame, ")")
| fields errorCodeLink, totalПопробуйте полный пример в тестовой среде Ключ-АСТРОМ.