Я строю сложную систему сервер / работник на Amazon Web Services. Постоянные данные хранятся в Amazon SimpleDB. Задания передаются между компьютерами через Amazon SQS. Двоичные данные упоминаются в сообщениях SQS и сохраняются через S3.
Я хотел бы найти или создать архитектуру ведения журналов, которая может отслеживать одно задание в нескольких экземплярах EC2, чтобы я мог искать проблемы и неэффективность при прохождении заданий через эту систему. Я строю для скорости, и мне нужна точность в миллисекундах.
Например, я бы хотел увидеть что-то вроде:
Job 243439:
Server Initialize API process: 0ms
Server Read job data from SimpleDb: 60ms
Server Create job on simpleDB: 86ms
Server write data to S3: 92ms
Server Write SQS message: 98ms
Worker picks up SQS message: 400ms
Worker reads data from S3: 590ms
Worker finished job: 650ms
Worker writes data to S3: 700ms
Worker writes message to SQS: 750ms
Таким образом, я мог бы посмотреть на отдельную работу, посмотреть пройденный журнал событий и определить, где его можно улучшить по пути.
В настоящее время я использую .NET для всех процессов, но хотел бы построить это более независимым способом, чтобы рабочие роли могли быть в Linux и при этом регистрироваться одинаково.
Есть идеи, как лучше всего с этим справиться?