2016-09-20 1 views
0

Я работаю над новой веб-службой, где многие события будут зарегистрированы в базе данных MySQL. Идея заключается в том, что пользователи изменят статус «билетов», и все это будет записано в этой базе данных MySQL.Как настроить отслеживание онлайн-сервиса (Grafana?)

Однако ключевой момент для разработки проекта - это обеспечить точное отслеживание поведения пользователей, а также количество открываемых «билетов» и их изменение статуса. Для этого я считаю, что какое-то отслеживание должно быть реализовано, но я не совсем уверен, как действовать дальше.

Я использовал Grafana в качестве пользователя, поэтому я подумал, что это может обеспечить часть необходимой инфраструктуры. Однако я не знаю подробностей о том, как передавать данные в Grafana. Я слышал о InfluxDB и Graphite, но я не совсем уверен, что это такое, как они работают и как они будут относиться к нормальной базе данных MySQL.

Может ли кто-нибудь предоставить подробное объяснение того, как реализовать отслеживание, начиная с простой базы данных MySQL веб-службы, которая регистрирует текущий статус «билетов» в каждый момент?

Спасибо!

ответ

2

Графит и InfluxDB являются базами данных Time Series, они предназначены для эффективного хранения ряда числовых значений, которые меняются с течением времени. Для приложения, как то, что вы описываете, вы хотите использовать statsd, чтобы принимать данные из вашего приложения и хранить его в графите или притоке, чтобы графана могла запросить его.

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

statsdClient.gauge('tickets.total', 123.45);

Проделав то же самое для вашего другого счета (tickets.open и т. д.), вы можете создать ряд серий в базе данных временных рядов, которые отслеживают значения интересующих вас метрик с течением времени, тогда вы сможете их графовать в графане.

+0

И представьте, что я также хочу сделать запросы о прошлой производительности моего приложения, чтобы получить некоторую аналитику (возможно, используя SQL). Являются ли временные базы данных, такие как InfluxDB, также полезными для такого подхода? – user2348684

+0

Базы данных временных рядов идеально подходят для хранения метрик приложений, вы можете записывать данные синхронизации с использованием того же самого клиента statsd, который используется для отслеживания количества ваших билетов. [https://github.com/etsy/statsd/blob/master/docs/metric_types.md#timing] - это то, что вы хотели бы использовать для этого. Для таких вещей, как подсчет количества запросов и т. Д., Вы можете использовать метрику count. – AussieDan

Смежные вопросы