LoginSignup
8
7

More than 3 years have passed since last update.

Go言語のCLIからInfluxdbに為替情報を入れてGrafanaで可視化する

Last updated at Posted at 2018-01-01

はじめに

為替情報を取得できるOANDA APIについてのWrapperとそれを使用したコマンドラインツール(goanda)をGo言語で作成しました。さらに、goandaとinfluxdbとgrafanaを使用して、為替情報を可視化しました。可視化までについてDocker Composeにまとめました。

環境

実際に試した際の環境です。

  • Ubuntu 17.10
  • Docker 17.12.0-ce
  • Docker Compose 1.8.0

今回使用したものです。

流れ

可視化までの流れです。

  1. Docker Composeを起動します。
  2. goandaがInfluxDBにデータベースの作成などInfluxDBの初期設定を行います。
  3. goandaがOANDA APIを使用して過去データをInfluxDBに保存します。
  4. goandaがOANDA APIのStreaming APIを使用してリアルタイムのデータをInfluxDBに保存し続けます。
  5. InfluxDBにデータが保存されているので、Grafanaに手動で設定し可視化を行います。

実践

実際に起動してみます。

アクセストークンの取得、設定

  • OANDA APIを使用するために口座開設またはデモ口座を開設し、アクセストークンを発行必要があります。
git clone https://github.com/mmm888/exchange-api-docker
cd exchange-api-docker
cat << '_EOF_' > build/cmd/secret.go
package exchange

var (
    userID = "REPLACE THIS WITH YOUR ACCOUNT ID"
    token  = "REPLACE THIS WITH YOUR ACCESS TOKEN"
)
_EOF_

REPLACE THIS WITH YOUR ACCOUNT ID, ACCESS TOKENから発行したアクセストークンに置き換えます。

また、docker-compose.ymlに環境変数を設定して、通貨ペア等の設定ができます。設定できる一覧はこちらです。

起動

Docker Composeを起動します。

docker-compose build
docker-compose up -d

Grafanaの設定

Grafanaが起動しているので、http://127.0.0.1:3000/ にアクセスします。

  • User: admin
  • Password: admin

login.png

データストアを以下のように設定します。

datasource.png

グラフを以下のように設定します。

graph02.png

こんな感じで、可視化できました。

まとめ

作ったのはOANDA APIのWrappeする部分とそれを使ったコマンドラインツールで、外部サービスを使用して可視化まで行いました。Go言語の勉強 + 外部サービスとあわせて起動するためにDocker Composeの使い方を勉強するのにちょうどよかったと思います。

参考

8
7
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
7