Перейти к содержанию

Оптимизация стоимости DQL с помощью Workflows

  • Актуальная версия Dynatrace
  • Preview

С помощью Dynatrace Intelligence (Preview) вы можете автоматизировать обобщение проблем и попросить генеративный ИИ Dynatrace Intelligence предложить шаги по устранению, которые могут быть отправлены на вашу электронную почту.

Обзор

С помощью этого руководства:

  • Вы познакомитесь с оптимизацией стоимости Dynatrace Query Language (DQL) с использованием Dynatrace Intelligence (Preview).
  • Вы узнаете, как автоматизировать получение инсайтов и рекомендаций для снижения затрат на выполнение запросов.

Целевая аудитория

Это руководство написано для:

  • Инженеров по наблюдаемости
  • Владельцев платформ
  • Специалистов по FinOps
  • SRE

Сценарий

  • Автоматическое обнаружение дорогостоящих DQL-запросов.
  • Получение предложений по оптимизации и действий по снижению затрат по электронной почте или в чате.

Чтобы помочь командам более эффективно управлять затратами на наблюдаемость, этот сценарий демонстрирует, как автоматизировать выявление и оптимизацию дорогостоящих выполнений Dynatrace Query Language (DQL).

Простой рабочий процесс, запланированный для ежедневного запуска, обнаруживает 20 самых дорогих запросов за последние 24 часа. Благодаря интеграции генеративного ИИ Dynatrace Intelligence в этот рабочий процесс каждый запрос автоматически анализируется на предмет возможностей оптимизации.

Генеративный ИИ предоставляет персонализированные рекомендации по снижению стоимости запросов и отправляет эти инсайты непосредственно авторам запросов по электронной почте. Это помогает проактивно контролировать затраты и повышать эффективность запросов без ручного вмешательства.

Прежде чем начать

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

Для использования Dynatrace Intelligence (Preview) убедитесь, что у вас есть:

  • Разрешение Conversational recommender (ALLOW davis-copilot:conversations:execute;).
  • Установленное приложение Dynatrace Intelligence (Preview).
  • Доступ к метрикам использования DQL и данным о тарификации.

Шаги

  1. Настройка триггера рабочего процесса

  2. Перейдите в Workflows.

  3. Нажмите + Workflow, чтобы создать новый рабочий процесс.
  4. В триггерах выберите Fixed time trigger.
  5. Настройте поля:

  6. Установите Run at на желаемое время.

  7. Установите Rule на Every day.

  8. Получение дорогостоящих запросов

  9. Нажмите + Add task.

  10. В поле поиска введите DQL query или выберите Execute DQL Query из списка действий Workflow.
  11. Переименуйте задачу в dql_query.
  12. В поле DQL query добавьте следующий запрос:
fetch dt.system.query_executions, from:now() - 24h


| filter status == "SUCCEEDED"


| summarize executionCount = count(), sum = sum(scanned_bytes.on_demand), user = collectDistinct(user.email), app = collectDistinct(client.application_context), by: {query_string}


| sort sum desc


| limit 20
  1. Запрос к генеративному ИИ Dynatrace Intelligence для поиска улучшений каждого запроса

  2. Нажмите + Add task.

  3. В поле поиска введите Dynatrace Intelligence или выберите Define prompt из списка действий Workflow.
  4. Настройте генеративный ИИ Dynatrace Intelligence:

  5. В поле Prompt введите следующий промпт:

I've supplied you with result of a DQL Grail query. This result has information about top 20 expensive executed by users in last 24 hours.


Create a json array with the following info:


- query: that is the original query that is given in the result


- email: email of the user who executed the query


- improvement: tell me the reasons why query is expensive and how can user improve it


- context: any relevant context where the query is executed and so on


Make sure that there is no other text beside the json array and no backticks or anything
* В поле Additional context введите следующее: {{result('dql_query').records}} * Включите Auto-trim. * Убедитесь, что Document retrieval установлен в Disabled. * Переименуйте задачу в davis_copilot.

  1. Отправка результатов генеративного ИИ Dynatrace Intelligence на электронную почту пользователей

  2. Нажмите + Add task.

  3. В поле поиска введите Send email или выберите Send email из списка действий Workflow. Дополнительную информацию о действиях электронной почты в Workflow см. в разделе Email.
  4. Введите имя задачи рабочего процесса.
  5. Настройте поля:

  6. В Configure email > Recipients установите поле To на {{_.list.email}}. Это электронная почта пользователя.

  7. В поле Content, Subject введите следующий текст: Expensive query executed.
  8. Установите содержимое поля Message:

Hi {{_.list.email}},


You've executed an expensive query that could be optimized to reduce costs. Below are the details to help you improve it:


---


### Query Details:


- **Original Query**:


`{{_.list.query}}`


- **Suggested Improvements**:


{{_.list.improvement}}


- **Context**:


{{_.list.context}}


---


Taking these steps can help improve performance and reduce expenses.


Thanks,


Your Admin
* Перейдите на вкладку Options и настройте поля следующим образом:

  • Включите Loop task.
  • Введите list в поле Item variable name и введите {{result('davis_copilot').text}} в поле List.

  • Завершение настройки рабочего процесса

  • Нажмите Deploy, чтобы развернуть рабочий процесс.

  • Нажмите Run, чтобы протестировать рабочий процесс.

Связанные темы

  • Dynatrace Assist
  • Приложение Dynatrace Intelligence (Preview)
  • Обзор агентного и генеративного ИИ Dynatrace Intelligence
  • Workflows