AppDynamics недавно объявила о поддержке приложений, работающих с расширенным набором сервисов от Amazon Web Services (AWS). Поскольку многие предприятия осуществляют миграцию или развертывание своих новых приложений в облаке AWS, важно иметь более глубокое понимание и контроль над приложениями и базовой инфраструктурой, чтобы гарантировать, что они могут обеспечить исключительный опыт конечного пользователя.
AppDynamics предлагает те же функции мониторинга, управления, автоматизированных процессов и аналитики для приложений, работающих в AWS, которые доступны для приложений, работающих на локальном компьютере. С выпуском AppDynamics Summer ’15 Release приложения, развернутые на AWS, теперь легко оборудуются для обеспечения полной наглядности и управления расширенным набором сервисов AWS, включая Amazon Simple Queue Service (Amazon SQS) , Amazon Simple Storage Service (Amazon S3) и Amazon DynamoDB .
В этом блоге я сосредоточусь на мониторинге приложений, использующих Amazon SQS. Согласно веб-странице AWS , «Amazon SQS — это быстрый, надежный, масштабируемый, полностью управляемый сервис очереди сообщений. SQS упрощает и удешевляет разделение компонентов облачного приложения. Вы можете использовать SQS для передачи любого объема данных на любом уровне пропускной способности, не теряя сообщений и не требуя, чтобы другие службы были всегда доступны ».
Библиотека Amazon SQS Java Messaging, которая представляет собой интерфейс службы сообщений Java (JMS) к Amazon SQS, позволяет использовать Amazon SQS в приложениях, которые уже используют JMS.
Очереди сообщений в SQS могут создаваться либо вручную, либо через библиотеку сообщений Java SQS и AWS Java SDK , а сообщения могут отправляться или приниматься в очереди различными способами для различных случаев использования.
Вот карта потока приложения в AppDynamics для примера приложения, использующего Amazon SQS, для следующих трех вариантов использования:
-
Базовая отправка / получение
-
Пакетная отправка / получение
-
Асинхронная отправка / получение
AppDynamics поддерживает все точки выхода для Amazon SQS из коробки. Каждая точка выхода обрабатывается точно так же, как JMS, .NET-сообщения и т. Д. Для всех случаев использования, описанных выше.
В настоящее время точка входа в Amazon SQS поддерживается только как часть продолжающейся транзакции. Например, если транзакция начинается с некоторого уровня «foo» и продолжается через выход через некоторую очередь SQS на нисходящий уровень, bar — транзакция на «баре» может продолжаться при соответствующей конфигурации. Пользователь должен указать файл конфигурации custom-interceptors.xml, чтобы применить специальный перехватчик точки входа SQS к данному методу и указать, где получить заголовок корреляции.
Мой коллега Энтони Килман поделился следующим примером на случай, если нижестоящее приложение пользователя обрабатывает сообщения, полученные из сообщения SQS:
public abstract class ASQSConsumer extends ASQSActor {
…
protected void processMessage(Message message) {
log.info(” Message”);
log.info(“ MessageId: ” + message.getMessageId());
log.info(“ ReceiptHandle: ” + message.getReceiptHandle());
log.info(“ MD5OfBody: ” + message.getMD5OfBody());
log.info(“ Body: ” + message.getBody());
for (Map.Entry<String, String> entry : message.getAttributes().entrySet()) {
log.info(” Attribute”);
log.info(“ Name: ” + entry.getKey());
log.info(“ Value: ” + entry.getValue());
}
Map<String, MessageAttributeValue> messageAttributes = message.getMessageAttributes();
log.info(“message attributes: ” + messageAttributes);
}
…
}
Тогда конфигурация для продолжения транзакции будет выглядеть следующим образом:
<custom-interceptors>
<custom-interceptor>
<interceptor-class-name>com.singularity.SQSEntryPoint</interceptor-class-name>
<match-class type=”matches-class”>
<name filter-type=”equals”>aws.sqs.test.ASQSConsumer</name>
</match-class>
<match-method>
<name>processMessage</name>
</match-method>
<configuration type=”param” param-index=”0″ operation=”getter-chain” operation-config=”this”/>
</custom-interceptor>
</custom-interceptors>
Эта конфигурация приведет к снимку, подобному следующему:
Чтобы узнать больше о мониторинге производительности облачных приложений и облаке AWS, перейдите по ссылке http://www.appdynamics.com/cloud/ .
Прочитайте наш бесплатный информационный документ « Управление производительностью облачных приложений» .