dtctl CLI

Официальный CLI платформы Dynatrace со встроенным скиллом: рабочие процессы, дашборды, DQL-запросы и SLO из терминала

  • 201 ★ репозитория
  • Последний коммит
  • Apache-2.0
CLI

Расширенный доступ

Почему такой уровень

  • Команды `apply` и `delete` изменяют и удаляют рабочие процессы, дашборды и настройки окружения Dynatrace.
  • Уровень безопасности по умолчанию — `readwrite-all`, и права токена он не сужает.
Все причины и проверки

dynatrace/dtctl

Установка

Ручная установка

brew install dynatrace-oss/tap/dtctl

Ставит клиент на macOS и Linux через Homebrew. Для других случаев в README есть установочный скрипт и PowerShell для Windows.

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Команды `apply` и `delete` изменяют и удаляют рабочие процессы, дашборды и настройки окружения Dynatrace.
  • Уровень безопасности по умолчанию — `readwrite-all`, и права токена он не сужает.

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

dtctl — консольный клиент для облачной платформы Dynatrace от самой компании. Команды строятся как в `kubectl`: `dtctl get workflows`, `dtctl describe`, `dtctl apply -f workflow.yaml`, `dtctl delete`. Так платформой управляют из терминала и скриптов, а конфигурацию хранят в YAML. Клиент работает с рабочими процессами, дашбордами и блокнотами, SLO, настройками, бакетами, детекторами аномалий, расширениями и облачными подключениями AWS, Azure и GCP. Запросы на языке DQL идут командой `dtctl query "fetch logs | limit 10"`, а `dtctl exec copilot nl2dql` переводит запрос на обычном языке в DQL. Для агентов предусмотрены флаг `--agent` со структурированным выводом, каталог команд `dtctl commands` и обзор данных `dtctl inventory`. В репозитории лежит скилл `skills/dtctl`, который объясняет Claude Code, Cursor, Codex и Copilot порядок работы с клиентом. Домен Dynatrace, то есть синтаксис DQL и приемы анализа логов, лежит в отдельных скиллах репозитория Dynatrace/dynatrace-for-ai.

Для кого. SRE и DevOps-инженерам на Dynatrace, которые разбирают инциденты и ведут дашборды, рабочие процессы и SLO как код, в том числе руками агента.

Подходит, если

  • После алерта агент вытаскивает из Dynatrace ошибки за последний час и показывает, какие сервисы пострадали.
  • Дашборды и рабочие процессы хранятся в Git, и их выкатывают в окружения командой `dtctl apply` с подстановкой переменных.
  • Состояние SLO проверяют в CI-пайплайне перед релизом.
  • Вопрос сформулирован по-человечески, а DQL писать лень: `dtctl exec copilot nl2dql` дает заготовку запроса.
  • Один инженер переключается между тестовым, предпродовым и боевым окружениями и не хочет случайно изменить боевое окружение.

Не подходит, если

  • Используется Dynatrace Managed: для него есть отдельный инструмент `dtmgd`, а dtctl рассчитан на SaaS.
  • Нужен только просмотр графиков глазами: веб-интерфейс Dynatrace удобнее.
  • Токен с широкими правами пришлось бы отдать агенту без ограничений: уровень безопасности сам права токена не сужает.
  • Нужны только стабильные команды: часть флагов помечена как экспериментальные.

Пример запроса к агенту

Покажи через dtctl ошибки в логах сервиса `checkout` за последний час и список открытых проблем, ничего не изменяя.

Ограничения

dtctl работает только с Dynatrace SaaS и требует аккаунт и окружение, вход идет через OAuth или токен. Уровень безопасности (`readonly`, `readwrite-mine`, `readwrite-all`) действует на стороне клиента и права токена не сужает, поэтому агенту выдают токен с минимальными областями доступа. Уровень по умолчанию — `readwrite-all`. Запросы к логам, событиям и трассам тарифицируются по просканированным байтам, а плитки дашбордов оплачиваются при каждом обновлении. Часть команд и флагов имеет статус `experimental` или `development`.

Как отключить. Выйдите из окружения и уберите клиент: удалите его командой `brew uninstall dtctl` (если ставили через Homebrew) или файлом из `PATH`. Скилл удалите из каталога скиллов агента, а токены отзовите в Dynatrace.

Частые вопросы

Как установить dtctl?

На macOS и Linux выполните `brew install dynatrace-oss/tap/dtctl`. Есть и установка скриптом, и PowerShell-скрипт для Windows. Затем войдите командой `dtctl auth login --context my-env --environment "https://abc12345.apps.dynatrace.com"` и проверьте `dtctl doctor`.

Как поставить скилл dtctl в Claude Code?

Запустите `dtctl skills install --for claude` или `npx skills add Dynatrace/dtctl`. Команда `dtctl skills install` без флага сама определяет агента, а `--global` ставит скилл для всех проектов.

Как не дать агенту ничего изменить?

Задайте контексту уровень безопасности `readonly`, например `dtctl config set-context web --environment "$DT_ENVIRONMENT_URL" --token-ref t --safety-level readonly`. Дополнительно выпустите токен только с правами на чтение.

Чем отличается dtctl от `dtmgd`?

dtctl управляет Dynatrace SaaS, `dtmgd` — Dynatrace Managed. Для настройки и подключения данных есть третий инструмент, `dtwiz`.

Откуда агент знает синтаксис DQL?

Скилл `dtctl` отправляет агента к `references/DQL-reference.md`. Глубокие знания по DQL и логам дает отдельный набор: `npx skills add dynatrace/dynatrace-for-ai`.

Обсуждение

Вопросов и отзывов пока нет.

Официальные скиллы Dynatrace для агентов: DQL, трейсы, логи, Kubernetes, облака и безопасность в Claude Code и Cursor.

СкиллРасширенный доступ175Звезды репозитория
Выбор редакции

Официальный набор скиллов Datadog: мониторы, логи, APM, интеграции с облаками, RUM и наблюдаемость LLM из агента

СкиллШирокий доступ183Звезды репозитория
Официальный

Официальный CLI Coralogix с 19 скиллами: агент читает логи, трассы и метрики продакшена и разбирает инциденты в терминале

CLIШирокий доступ241Звезды репозитория
Официальный

Официальный управляемый MCP-сервер Datadog: логи, метрики, трейсы и инциденты прямо в агенте

MCP-серверРасширенный доступ47Звезды репозитория

Deckhouse CLI (d8)

D8 - Deckhouse CLI

Консольный клиент d8 для Deckhouse Kubernetes Platform: статус кластера, модули, бэкапы, зеркалирование и диагностика

CLIШирокий доступ21Звезды репозитория
Официальный

Официальный CLI JetBrains для TeamCity: запуск сборок, хвост логов, очередь и шелл на агенте из терминала.

CLIШирокий доступ130Звезды репозитория

Коротко о README

README открывается примерами команд, затем дает три способа установки, вход через OAuth и таблицу ресурсов с допустимыми операциями. Отдельные разделы описывают скилл для агентов, режим HTTP-сервера `dtctl serve http` и экспорт трассировки через OpenTelemetry.

Бейдж для README

Исходный SKILL.md

---
name: dtctl
description: Investigate incidents, debug performance issues, analyze logs, and manage observability resources in Dynatrace using the dtctl CLI. Use this skill whenever the user asks about error rates, latency spikes, service health, crash-looping pods, web vitals, SLO status, open problems, root cause analysis, log patterns, trace analysis, or building dashboards — even if they don't mention Dynatrace by name. Also covers DQL queries, workflow management, notebook and dashboard creation, settings configuration, and any operations against a Dynatrace environment.
---

# Dynatrace Control with dtctl

Operate `dtctl`, the kubectl-style CLI for Dynatrace. Pattern: `dtctl <verb> <resource> [flags]`.

## Initialization

Run once to establish context, permissions, and the command catalog:

```bash
dtctl commands                          # compact overview: verbs, resources, subcommands (TOON default)
# dtctl commands --brief                 # + mutating/access/scopes + flag types
# dtctl commands --full                  # exhaustive catalog: descriptions, flag defaults, global flags
dtctl config current-context            # active context
dtctl config describe-context $(dtctl config current-context) --plain  # env URL + safety level
dtctl auth status --plain               # token type (OAuth vs API/platform) + safety level
dtctl inventory                         # what data exists HERE: fetchable objects, buckets, entity census, capabilities
```

Safety levels: `readonly`, `readwrite-mine`, `readwrite-all`, `dangerously-unrestricted`.

`dtctl commands` answers "what can I run?"; `dtctl inventory` answers "what is there to query?" — run it before exploratory DQL. It partitions catalog objects into fetchable vs query-only (never `fetch metrics` or `fetch smartscape.*`), and reports capabilities as present, absent (with the evidence checked — cite it instead of re-probing), or unknown (no verdict; not evidence of absence). Org-specific capability definitions: `--definitions file.yaml`.

Don't use `dtctl auth whoami` to test connectivity — it needs an OAuth token with `app-engine:apps:run` and returns a spurious 403 for plain API or read-scoped tokens even when reads work. Confirm with a real `get`/`query`.

## DQL (required reading)

Before writing, modifying, or running any DQL (`dtctl query`, `dtctl wait query`, query files), consult `references/DQL-reference.md` and follow it over any assumption or memory.

```bash
dtctl query "fetch logs | filter status='ERROR' | limit 100" -o json --plain
dtctl query -f query.dql --set host=h-123 --set timerange=2h -o json --plain   # Go-template vars
dtctl wait query "fetch spans | filter test_id='test-123'" --for=count=1 --timeout 5m
dtctl query "timeseries avg(dt.host.cpu.usage)" -o chart --plain
```

Сообщить о проблеме

Foxx AIdtctl
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.