2016-09-20 36 views
0

我正在研究一個新的Web服務,其中許多事件將在MySQL數據庫中註冊。這個想法是,用戶將改變「門票」的狀態,這將全部記錄在這個MySQL數據庫中。如何設置跟蹤在線Web服務(Grafana?)

但是,開發該項目的關鍵點是能夠準確跟蹤用戶的行爲以及打開的「門票」的數量和狀態的變化。爲此,我認爲應實施某種跟蹤,但我不太確定如何繼續。

我已經使用Grafana作爲用戶,所以我認爲它可以提供部分所需的基礎設施。但是,我不知道如何將數據傳遞給Grafana的細節。我聽說過InfluxDB和Graphite,但我不太清楚它們是什麼,它們是如何工作的以及它們與普通MySQL數據庫的關係。

有人可以提供詳細的解釋,如何實現從簡單的MySQL服務器的MySQL數據庫開始跟蹤,每個時刻註冊「門票」的當前狀態?

謝謝!

回答

2

Graphite和InfluxDB都是時間序列數據庫,它們旨在有效地存儲隨時間變化的一系列數值。對於像你所描述的應用程序,您希望使用statsd接受來自應用程序的數據並將其存儲在石墨或influxdb中,以便Grafana隨後可以對其進行查詢。

對於一個具體的例子,假設你想要跟蹤一段時間內的總票數。您將通過使用你正在使用和更新跟蹤票樣的總數計值的任何語言statsd客戶端打開一個新的票儀器代碼:

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

這樣做的(tickets.open等),您可以在時間序列數據庫中創建多個系列數據庫,以跟蹤您感興趣的指標的值,然後您就可以在grafana中繪製它們。

+0

並想象我也想查詢我的應用程序的過去表現來獲得一些分析(可能使用SQL)。像InfluxDB這樣的時態數據庫對這種方法是否有用? – user2348684

+0

時間序列數據庫非常適合存儲應用程序指標,您可以使用跟蹤您的票數統計信息的相同statsd客戶端記錄時間數據。 (statsd時間指標)[https://github.com/etsy/statsd/blob/master/docs/metric_types.md#timing]是您想要用於此目的的。 對於計算請求數量等事情,您可以使用計數度量。 – AussieDan