SoundCloudがPrometheusを生んだ理由

個人的に、システムの専門でない会社が作ったツールが広く使われることに心惹かれる。Amazonがカートに入った商品データを紛失しないようにDynamoDBを作ったとか、ハンドメイドのクラフトを売買するEtsyがStatsDを作ったように、SoundCloudも自社のサービスを支えるためにPrometheusを生んだ話を読んでみる。

https://developers.soundcloud.com/blog/prometheus-monitoring-at-soundcloud

In previous blog posts, we discussed how SoundCloud has been moving towards a microservice architecture. Soon we had hundreds of services, with many thousand instances running and changing at the same time. With our existing monitoring set-up, mostly based on StatsD and Graphite, we ran into a number of serious limitations.

背景にはMicroserviceへの移行がある。そして、Microserviceというアーキテクチャでは、StatsDとGraphiteでは物足りなかった。

Prometheus fundamentally stores all data as time series: streams of timestamped values belonging to the same metric and the same set of labeled dimensions. Timestamps have a millisecond resolution, while values are always 64-bit floats.

StatsDと同じくtime seriesを扱う。metric単位でタイムスタンプを集めるだけならStatsDそのものだが、set of labeled dimensionsでタイムスタンプを集められるところが異なるところだろうか。

The Prometheus query language allows you to slice and dice the dimensional data for ad-hoc exploration, graphing, and alerting. We'll talk about the use of the query language for dashboards and alerting in the next two sections. Your first steps with the query language are best done using the expression browser offered by each Prometheus server.

独自のクエリ言語でslice and diceできる。直訳すると薄切りと角切りだが、データサイエンティストの世界では大規模データを様々な切り口で見ることをこう表現するらしい。

Prometheus has proven to be very useful at SoundCloud. It drives our internal monitoring, facilitates firefighting during outages and provides further insight into them for postmortems. We run Prometheus as an open-source project because we believe it can benefit the infrastructure community as a whole. If you are interested in getting involved, check out the Prometheus community.

PrometeusはSoundCloudでfirefighting(消火活動)やpostmortem(検死)に役立っている。どちらも普通に使われているアナロジーだ。

Amazonがカートに入った商品情報を紛失しないためにDynamoDBを作った話では、なぜ普通のデータベースに満足できなかったか理解できたのだが、なぜSoundCloudが多次元の時系列データにこだわったかよくわからないのが残念だ。どちらかというとサービス特性というより、Microserviceに手探りで突き進んだ副産物ということなのだろう。








この記事が気に入ったらサポートをしてみませんか?