Ключ-Астром ЕдиныйАгент не только обнаруживает веб-приложения на основе Go, но и обеспечивает полную видимость на уровне кода; он также предлагает поддержку частных сервисов для конкретных приложений. Благодаря настраиваемым службам вы можете отслеживать любую службу приложений Go, даже если Ключ-Астром не предоставляет для нее встроенную поддержку. Пользовательский сервис можно использовать для быстрого мониторинга функций в любом приложении Go.
Пользовательские услуги служат нескольким целям:
- Видимость на уровне обслуживания компонентов для конкретных приложений.
- Определение времени отклика. Это позволяет Ключ-Астром AI автоматически обнаруживать изменения времени отклика и определять их основную причину.
- Обнаружение отказов и определение базового уровня. ИИ не только обнаруживает сбой пользовательской службы из-за ошибки; он также может определить основную причину и определить, влияет ли сбой на работу конечного пользователя.
- Более глубокий обзор вашего приложения. Это дает вам сквозную трассировку на уровне запроса и горячие точки методов.
Приложение, для которого вы хотите определить настраиваемую службу, должно быть оснащено ЕдинымАгентом.
Создание пользовательских сервисов Go
Чтобы определить пользовательские сервисы Go
1. В меню Dynatrace выберите «Настройки» > «Обнаружение служб» > «Обнаружение пользовательских служб».
2. Перейдите на вкладку Службы Go и выберите Определить службы Go.
3. Введите собственное имя для службы, а затем выберите Найти точку входа.
4. Выберите группу процессов и процесс, содержащие точки входа, и нажмите Продолжить.
5. Выберите пакет или тип, который вы хотите использовать, и нажмите Продолжить.
6. Выберите одну или несколько функций в качестве точек входа для пользовательской услуги и нажмите кнопку Готово.
7. Выберите Сохранить изменения в правом нижнем углу, чтобы включить новый пользовательский сервис Go.
8. Перезапустите процесс goCron, чтобы Dynatrace OneAgent мог использовать все точки входа, определенные в пользовательских сервисах Go.
Замыкания в Go
Замыкания — это анонимные функции, которым компилятор Go присваивает специальные имена.
Сгенерированные имена замыканий, определенные в области видимости, нумеруются в порядке их появления: func1, func2 и т. д. Например, замыкание в функции main получает метку func1:
package main func main() { go func() { // ... }() }