Pull to refresh

CNCF White Paper по observability: инструменты, виды, стратегии и проблемы

Level of difficultyHard
Reading time38 min
Views5.9K

В августе 2023 года под руководством группы TAG Observability в экосистеме CNCF была выпущена версия 1.0 документа по наблюдаемости (observability). CNCF — флагман развития и продвижения облачных технологий. Организация объединяет в себе множество компаний, разработчиков и специалистов с огромным опытом и экспертизой, которые упаковали в этот документ. Наш материал является его переводом.

Читать далее
Total votes 33: ↑33 and ↓0+33
Comments4

Linux ”perf” ускорили в 60 раз

Reading time2 min
Views13K
Многие инструменты для визуализации производительности под Linux типа FlameGraph интенсивно используют профайлер perf из ядра Linux. В частности, такие «пламеграфы» наглядно показывают, сколько времени программа тратит на выполнение различных подпрограмм.

Для записи логов нужно или обернуть программу в вызов perf record, или инструмент просто подключается к текущему процессу. В любом случае затем мы прогоняем записанные данные через perf script, а несколько перловых скриптов генерируют «пламеграфы» из этих данных.

Проблема только в том, что perf record очень медленно работает под Debian по юридическим причинам. Всем разработчикам Linux это известно, но они ничего не могут сделать. Поэтому независимый программист Тони Гарнок-Джонс (Tony Garnock-Jones) выпустил патч, который ускоряет perf примерно в 60 раз.
Читать дальше →
Total votes 38: ↑36 and ↓2+34
Comments21

Несколько советов по эмпирическому анализу алгоритмов

Reading time6 min
Views16K

Вступление


В ноябре прошлого года появилась книга Magnus Lie Hetland под названием «Python Algorithms: Mastering Basic Algorithms in the Python Language». Автор много лет занимается программированием и сейчас читает курс теории алгоритмов в одном из норвежских университетов. В своей книге он довольно простыми словами объясняет методы построения и анализа алгоритмов, а также приводит множество примеров, ориентированных на программистов на Python. Автор сосредотачивает свое внимание на практическом подходе к построению и оптимизации решений различных алгоритмических задач. В одном из обзоров говорится, что эту книгу можно сравнить с классическим трудом Кормена.

Мы с tanenn понемногу переводим эту книгу, и я предлагаю вашему вниманию перевод части первой главы — «Empirical Evaluation of Algorithms».

Читать дальше →
Total votes 20: ↑20 and ↓0+20
Comments13

Много сайтов на одной странице

Reading time4 min
Views9K

Здравствуй Хабр!


A good day! Добрый день! Мы выступаем от стартапа brief.ly из Лондона. От наших украинских друзей мы узнали о могучем коммюнити Хабрахабра, и решили представить на усмотрение вам наш революционный продукт.

Хотелось бы услышать как он поведет себя в ваших руках, каково ваше мнение, что понравилось, что нет? Что бы вы сделали иначе, а чем можно гордиться?

Интермеццо


Сколько в Интернете сервисов сокращения адресов, подлинно не известно никому. Точно больше тысячи. Каждая серьезная компания имеет свой собственный короткий домен. Твиттер породил целую индустрию. Отличаются они лишь дополнительным функционалом. Однако все они берут один URL и делают из него другой URL.

Предыстория


Мы решили сделать нечто новое, казалось бы банально очевидное. А почему бы не брать много ссылок, положить все в табы, и пересылать это как одну страницу?

Vitaly Portnikov

Читать дальше →
Total votes 101: ↑72 and ↓29+43
Comments87

Оптимизация для начинающих, или о пользе профилирования

Reading time5 min
Views17K
Попалась мне задача написать на PHP оптимальный алгоритм вставки нового значения в упорядоченный массив. Причем аргументировано доказать, что именно этот алгоритм лучший. Для этого предлагалось написать три варианта и выбрать из них лучший. Конечно же я знаю, что лучший метод поиска — бинарный, но раз сказали доказать, что он лучший, так и быть, напишу еще два. С таким настроем и уверенностью в будущем результате я и принялся кодить.

Что из этого получилось приглашаю начинающих программистов почитать, а опытных обсудить.
Читать дальше →
Total votes 31: ↑19 and ↓12+7
Comments43

PostgreSQL Query Profiler: как сопоставить план и запрос

Reading time6 min
Views11K
Многие, кто уже пользуется explain.tensor.ru — нашим сервисом визуализации планов PostgreSQL, возможно, не в курсе одной из его суперсособностей — превращать сложно читаемый кусок лога сервера…


… в красиво оформленный запрос с контекстными подсказками по соответствующим узлам плана:


В этой расшифровке второй части своего доклада на PGConf.Russia 2020 я расскажу, как нам удалось это сделать.
С транскриптом первой части, посвященной типовым проблемам производительности запросов и их решениям, можно ознакомиться в статье «Рецепты для хворающих SQL-запросов».
Total votes 13: ↑13 and ↓0+13
Comments5

Верить ли глазам

Reading time7 min
Views8.3K

На что обращать внимание при оценке невербальных проявлений лжи

В прошлой статье мы разобрали, какие когнитивные искажения мешают определить обман. Как и обещал, хочу развить тему безынструментальной детекции лжи. Этот метод можно разделить на 2 категории:

1)     оценка невербальных реакций;

2)     оценка речи (и текстов).

Максимальную эффективность можно обеспечить только сочетанием двух моделей. Сегодня хочу обсудить первую категорию. Обсудим, какие правдивые выводы можно сделать из «чтения» по лицу и мимике, а что – всего лишь стереотипы. И бонус для дочитавших текст – несколько тренажеров, чтобы стать почти как Пол Экман в деле распознания эмоций.

Читать далее
Total votes 16: ↑12 and ↓4+8
Comments11

Пять стадий принятия неизбежного, или Как мы разрабатывали программу для автоматизированного профайлинга

Reading time13 min
Views5.6K
Привет, на связи Алексей Филатов (aka afilatov123). В 2017 году меня пригласили в команду «СёрчИнформ» для запуска нового программного решения. Точнее так – для наращивания возможностей флагманского продукта – DLP-системы. Рынку мало того, что софт уже умеет (предотвращать утечки информации и корпоративное мошенничество). Заказчики хотят, чтобы программа умела предсказывать пользовательское поведение: «вот этот сотрудник готовится к увольнению, а значит может...» или «человек испытывает стресс и вероятно совершит ошибку». И предсказания эти должны быть сделаны с высокой точностью и в автоматизированном формате.

Для решения этой задачи вендоры как правило идут по пути UEBA (или UBA). Но мы пошли своим и начали создавать автоматизированный профайлинг.

image

Под катом – история того, какой путь мы проделали, чтобы продукт состоялся.
Читать дальше →
Total votes 15: ↑10 and ↓5+5
Comments19

Все оттенки инсайдерства

Reading time2 min
Views2K

Рассмотрим их на осеннем Road Show

Осень для нас в «СёрчИнформ» – это роад. Road Show SearchInform. Это наше старейшее мероприятие и фактически наша визитная карточка. Вот и в этом году спикеры уже начищают ботинки, заказчики подбирают самые иллюстративные кейсы, ивентщики выбирают из меню закуски для кофе-брейков.

Читать далее
Total votes 8: ↑5 and ↓3+2
Comments0

Устранение утечек памяти с помощью профилирования

Reading time23 min
Views7.8K

Если система работает длительное время, объём свободной памяти может уменьшаться, что может приводить к отказу некоторых сервисов. Это типичная проблема утечки памяти, которую обычно сложно спрогнозировать и выявить. Удобными инструментами для решения подобных проблем являются профайлеры кучи. Они отслеживают распределение памяти и помогают разобраться, что находится в куче программы, а также найти утечки памяти.

В этой статье мы расскажем об использовании профайлеров кучи, а также объясним, как спроектированы и реализованы популярные профайлеры кучи, например, профайлер кучи Go, gperftools, jemalloc и Bytehound.
Читать дальше →
Total votes 29: ↑29 and ↓0+29
Comments0

Профайлер Бедного Человека: первое знакомство и (приятные) последствия

Reading time9 min
Views12K


Если вам приходилось оптимизировать работу программ, то вы могли слышать о Профайлере Бедного Человека. Этой идее даже посвящён целый сайт. ПБЧ собирает статистику времени выполнения отдельных функций программы, «подглядывая» в процесс её исполнения с помощью дебаггера. Концепт ПБЧ хорошо прижился у нас в движке баннерной крутилки — не буду в 100 500-й раз напоминать, что у Яндекса всё высоконагруженное, ресурсоёмкое и нуждающееся в профилировании. Статья будет полезна тем, кто пилит инфраструктуру, адаптирует какой-нибудь общеизвестный профайлер под себя или просто хочет больше знать про свои программы. Как мы пришли к необходимости в ПБЧ и что именно сделали? Сейчас постараюсь рассказать, местами буду закапывать глубоко в технологии (если переусердствую, пишите в комментариях). А начну со стандартного инструмента статистического профилирования в Linux — perf.
Читать дальше →
Total votes 30: ↑29 and ↓1+28
Comments20

Xdebug 2.1.0 beta1

Reading time1 min
Views491
image
Спустя полгода с момента последнего релиза вышла новая бета-версия популярного продукта для отладки и профилирования Xdebug.
Так как эта новость почему-то обошла обошла хабр, я решил заполнить этот пробел.

Читать дальше →
Total votes 13: ↑8 and ↓5+3
Comments7

Профайлинг Twisted-приложений

Reading time1 min
Views3K
Часто сам забываю, как профилировать легко и быстро Twisted-приложения (с некоторым изменениями подойдет для любых Python-приложений). Кроме Twisted нам понадобится еще KCachegrind.

Запускаем наше приложение с включенным профайлингом:
twistd -n --savestats --profile=myprog.hotshot myprog

Подаем нагрузку, профайл собирается. Теперь с помощью утилиты hotshot2cg из поставки KCachegrind превращаем hotshot-профайл в calltree-профайл, который уже умеет KCachegrind «кушать».
hotshot2cg myprog.hotshot > myprog.calltree

Запускаем KCachegrind, открываем в нем полученный профайл:
kcachegrind myprog.calltree
Total votes 20: ↑17 and ↓3+14
Comments1

Pinba — мониторим php в реальном времени

Reading time4 min
Views56K
Как сказано на официальном сайте
Pinba is a realtime monitoring/statistics server for PHP using MySQL as a read-only interface.

И это действительно так. Она позволит вам в реальном времени получать статистику по работающему приложению, при этом не замедляя само приложение.
Что делать со статистикой — это уже ваше дело, например, мы выводим ее в заббикс и используем как для мониторинга стабильности (нет ошибок, мало число длинных запросов), так и для аналитики.
Удивительно, что про это действительно замечательное изобретение не было еще ни одной статьи на хабре.

Прочитать еще
Total votes 177: ↑176 and ↓1+175
Comments116

Модуль профайлинга «ProfilerToolbar»

Reading time3 min
Views3.6K
Если вы используете Kohana, то скорее всего уже видели модуль DebugToolbar. Испробовав его на нескольких проектах, стало понятно, что его возможностей явно не хватает. А при использовании Ajax запросов данный модуль становиться вообще бесполезным.

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

ProfilerToolbar
Читать дальше →
Total votes 45: ↑43 and ↓2+41
Comments46

Полезные ссылки для PHP разработчика с MageConf 2012

Reading time2 min
Views28K
MageConf 201216.09.2012 в Киеве в три потока прошла конференция MageConf 2012. Два потока были посвящены системе Magento, третий – PHP. Посетив все 6 докладов на потоке PHP, хотел бы кратко изложить основную информацию, донесенную спикерами. В итоге пост получился набором полезных ссылок по разработке на PHP.

Докладчики особое внимание уделяли утилитам и софту, которыми они активно пользуются в Magento. Один из спикеров ранее был разработчиком портала i.ua.
Читать дальше →
Total votes 61: ↑50 and ↓11+39
Comments23

Мониторинг производительности PHP-кода с помощью Pinba

Reading time15 min
Views41K
Давайте представим себе типичный, набирающий популярность стартап, использующий, например, PHP или Python. Сначала все находится на одном сервере — PHP (или Python), Apache, MySQL. Затем вы выносите MySQL на отдельный сервер, устанавливаете nginx для раздачи контента, возможно, добавляете memcached для кеширования и еще несколько серверов приложений…

Со временем число серверов будет расти, и рано или поздно вы зададитесь вопросами
«А что сейчас вообще происходит с системой? Как часто выполняется тот или иной скрипт и как долго? Какие операции занимают большую часть времени?» Системы мониторинга типа Zabbix дают лишь общую, поверхностную картину состояния приложения.

Чтобы получить ответы на эти вопросы, в Badoo был разработан сервиc мониторинга и статистики в реальном времени — Pinba. В данной статье мы расскажем о нашем опыте использования его для мониторинга и профайлинга нашей системы.
Читать дальше →
Total votes 92: ↑88 and ↓4+84
Comments63