Оптимизируйте свой NRQL с помощью макросов!

Источник: New Relic•

Оптимизируйте свой NRQL с помощью макросов!

Анализируйте, преобразуйте и исследуйте свои данные с помощью NRQL Macros

Язык запросов New Relic Query Language (NRQL) позволяет парсить, преобразовывать и анализировать ваши данные. NRQL — очень мощный язык запросов, однако запросы могут становиться сложными и их трудно массово обновлять. Именно поэтому мы рады представить NRQL Macros — способ сохранения выражения NRQL в виде многоразового именованного сокращения.

Макросы создают единый источник достоверной информации для фрагмента NRQL, а также сокращают объем текста в вашем запросе, благодаря чему он становится более понятным для окружающих.

В новом разделе «NRQL Macros» в меню «Администрирование» (или через наш API) вы можете создавать и редактировать макросы. После того как макросу присвоено имя и он создан, его можно использовать в запросе NRQL, добавив символ «$» перед его именем. Ниже приведены три ключевых примера использования макросов:

1) Упрощение большого запроса

Запросы могут становиться очень большими и сложными. С помощью макросов вы можете сгруппировать большую часть такого запроса (например, предложение WHERE или WITH) в один макрос.

До макроса: SELECT count(*) FROM Transaction WHERE appId = 1234 AND appName!=’test’ AND http.statusCode IN (400, 401, 404)

После макроса: SELECT count(*) FROM Transaction WHERE $where_macro

2) Создание псевдонима для атрибутов с разными именами

Не все данные поступают в New Relic под абсолютно одинаковыми именами, хотя фактически это один и тот же атрибут. С помощью макросов вы можете задать псевдонимы для всех этих вариантов наименований.

До макроса: SELECT (podName OR pod_name OR pod.name) FROM Log

После макроса: SELECT $podnameAlias FROM Log

3) Обновление целого дашборда с помощью одного изменения

Допустим, у вас есть комплексный дашборд с 30 виджетами, отображающими данные PageView с разных ракурсов, но вам нужно внести дополнение в каждый виджет (например, исключить из данных тестового пользователя, чтобы он их не искажал). Теперь вы можете обновить каждый виджет, изменив всего один макрос.

До макроса для виджетов с таким запросом: SELECT count(*) FROM PageView WHERE enduser.id != ‘test-user’

После макроса для виджетов с таким запросом: SELECT count(*) FROM PageView WHERE $test_user_exclude

Наличие макроса в каждом виджете дает вам возможность вносить изменения во все виджеты за один раз. Вам больше не придется заходить в каждый виджет по отдельности.

Эти три примера дают общее представление о возможностях макросов и, надеемся, натолкнут вас на идеи о том, как можно упростить и/или оптимизировать ваши запросы NRQL.

Чтобы узнать больше обо всех тонкостях работы с макросами, ознакомьтесь с нашей документацией.

Александр Джонс (Alexander Jones) — главный менеджер по продукту в New Relic. Он специализируется на создании языка запросов, который помогает клиентам расширять возможности работы с данными. Его работа включает в себя разработку новых языковых функций, а также повышение производительности и надежности системы.

Взгляды, выраженные в этом блоге, принадлежат автору и не обязательно отражают точку зрения New Relic. Любые решения, предлагаемые автором, зависят от конкретной среды и не являются частью коммерческих решений или поддержки, предлагаемых New Relic. Пожалуйста, обращайтесь исключительно на форум Explorers Hub (support.newrelic.com) по любым вопросам и за поддержкой, связанными с этой публикацией в блоге. Этот блог может содержать ссылки на контент сторонних сайтов. Предоставляя такие ссылки, New Relic не берет на себя ответственность, не гарантирует, не одобряет и не поддерживает информацию, взгляды или продукты, доступные на таких сайтах.

О чём эта статья

Ещё в разделе «Данные и аналитика»

Все →

Ещё от New Relic