Язык запросов 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 не берет на себя ответственность, не гарантирует, не одобряет и не поддерживает информацию, взгляды или продукты, доступные на таких сайтах.












