Мониторинг вашего приложения на Python с AppSignal – CodesCode.

Узнайте, как AppSignal упрощает мониторинг производительности приложений для ваших проектов на Ruby, Elixir, Node.js, JavaScript для фронтенда и Python.

AppSignal – это простой в использовании APM для ваших проектов на Ruby, Elixir, Node.js, frontend JavaScript и Python. В этой статье мы покажем вам, как вы можете использовать AppSignal, чтобы поднять уровень вашего Python-приложения с помощью нашего последнего проекта, Nesstr – приложения для знакомств змей.

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

Мы создали эту статью совместно с AppSignal. Благодарим вас за поддержку партнеров, которые делают возможным CodesCode.

Что такое APM и как оно может вам помочь?

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

AppSignal предлагает инструменты, которые обнаруживают исключения, проблемы производительности и аномалии, такие как высокие времена отклика и медленные очереди фоновых задач.

Другими словами, если вы представите приложение как автомобиль, то AppSignal будет диагностическим инструментом. Мы предоставляем вам быстрый обзор производительности и состояния вашего приложения, помогая вам знать, когда принимать меры до того, как загорятся какие-либо предупреждающие сигналы.

Устранение ошибок с помощью AppSignal

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

Давайте представим себе ситуацию, когда пользователи Nesstr сообщают, что они не получают уведомлений, когда кому-то нравится их профиль. Видимо простое действие “лайк” профиля включает в себя несколько компонентов. Приложения делают сложным определение, где может быть корень проблемы. Например, это может быть React-компонент, функция API или фоновая задача Celery?

Вот где нам может помочь AppSignal, устраняя угадывание и идентифицируя место возникновения исключения внутри нашего приложения. В случае Nesstr мы настроили AppSignal на уведомление нас через Slack каждый раз, когда возникает проблема в нашем приложении.

Ошибка AppSignal в Slack

После того, как мы получаем уведомление об ошибке, мы можем глубже исследовать AppSignal для более полного понимания происшествия. AppSignal предоставляет нам подробный контекст для каждого события исключения.

ошибка инцидента

Благодаря подробным данным об исключении, предоставленным AppSignal, мы можем быстро определить корневую причину проблемы в нашем коде. Рассматривая сообщение об ошибке, зарегистрированное в AppSignal, мы можем сказать, что наше приложение пытается получить атрибут name из объекта noneType в задаче Celery send_like_notification:

@app.taskdef like_profile(profile, user):    profile.add_like_from(user)user = User.get(user_id) # Это возвращает None, потому что наш user_id равен nil.profile = Profile.get(profile_id)like_profile(post, user)

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

Мониторинг производительности с помощью AppSignal

После исправления нашего “уведомителя” о “лайках”, AppSignal заметил, что наша конечная точка fetch_matches отвечает медленно. Благодаря инсайтам AppSignal нам не нужно ждать, пока пользователь пожалуется на это, и нам не нужно заниматься загрузкой санитарной копии базы данных для попытки воспроизвести проблему локально. Мы можем просмотреть временную линию событий образцов производительности fetch_profiles, записанных AppSignal.

Временная линия событий

Здесь мы легко видим, что psycopg2 запаздывает, когда запрашивается конечная точка request_match, замедляя наше приложение.

AppSignal не только устраняет все догадки о том, почему конечная точка медленная, но и помогает нам превентивно выявить потенциальное будущее узкое место. Теперь мы можем внести изменения в нашу конечную точку и масштабироваться с уверенностью.

Оповещение об аномалиях с помощью AppSignal

Теперь, когда мы использовали AppSignal для решения некоторых более явных проблем в нашем приложении, мы можем использовать AppSignal, чтобы принять более превентивный подход к разработке и предвидеть проблемы еще до их возникновения.

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

С помощью обнаружения аномалий мы можем создавать триггеры, которые сообщают нам, когда желаемая метрика достигает определенного порога, например, когда уровень ошибок превышает 5% или конечная точка отвечает более 200мс.

Создание триггера

Замечательная вещь в обнаружении аномалий заключается в том, что мы можем настроить ее таким образом, чтобы она имела смысл для вашего приложения, и быть оповещенными таким образом, чтобы это имело смысл для вашей организации. С AppSignal вы можете интегрироваться со множеством популярных коллаборационных инструментов, таких как Discord и Slack, что означает, что AppSignal интегрируется в ваш рабочий процесс, а не заставляет вас менять привычный способ работы.

Сохранение наблюдаемости вашего мониторинга с помощью AppSignal

Графики AppSignal предоставляют вам мгновенные визуальные представления о метриках вашего приложения, позволяя вам быстро отслеживать и анализировать показатели производительности.

Метрическая панель

Если вы заметили что-то, что вы хотите дополнительно изучить, например, быстрый рост уровня ошибок, щелкните на этой точке на графике, и вы увидите состояние вашего приложения в этот конкретный момент времени.

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

Управление ваших журналами с помощью AppSignal

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

Таким образом, вы можете перейти от просмотра инцидента с ошибкой в AppSignal к просмотру журналов во время происшествия за считанные секунды.

Преимущество журналирования в AppSignal заключается в том, что в любом месте приложения AppSignal, с помощью нашей потрясающей функции “Time Detective”, вы всегда находитесь всего в нескольких кликах от ваших журналов.

При расследовании ошибок или инцидентов производительности вы можете использовать “Time Detective”, чтобы получить всестороннее представление о производительности вашего приложения в момент возникновения проблемы и более глубоко проникнуть в ваши журналы для более детальной отладки.

Начинаем работу с AppSignal

Вы можете отправлять метрики из вашего приложения на AppSignal меньше, чем за время, необходимое, чтобы выпить кофе.

Зарегистрируйтесь для учетной записи AppSignal и следуйте инструкциям нашего мастера установки. Мастер установки проведет вас через все необходимые шаги для отправки метрик из вашего Python приложения в AppSignal!

В нашей документации по Python также описаны все необходимые шаги для получения необходимых метрик, включая инструкции по установке AppSignal вручную.

Поделиться этой статьей


Leave a Reply

Your email address will not be published. Required fields are marked *