1. Start with a System update
sudo apt update
2. Import the InfluxDB GPG key
wget -q https://repos.influxdata.com/influxdata-archive_compat.key
3. Add APT repository
echo '393e8779c89ac8d958f81f942f9ad7fb82a25e133faddaf92e15b16e6ac9ce4c influxdata-archive_compat.key' | sha256sum -c && cat influxdata-archive_compat.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg > /dev/null
echo 'deb [signed-by=/etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg] https://repos.influxdata.com/debian stable main' | sudo tee /etc/apt/sources.list.d/influxdata.list
sudo apt update
4. Installing InfluxDB on Ubuntu 22.04
sudo apt install influxdb2
5. Start and Enable the Influxdb service
sudo systemctl start influxdb
sudo systemctl enable influxdb
6. Setup
influx setup
sudo apt install python3.11-venv
sudo apt install tmux
python3 -m venv ./venv
source ./venv/bin/activate
pip install websocket-client influxdb-client
pip install PyJWT
token
influx auth list -u username
new bucket
influx bucket create --name <버킷 이름> --org <조직 이름>
influx bucket create --name btc_order --org tmer
influx bucket create --name btc_ticker --org tmer
influx bucket create --name doge_order --org tmer
influx bucket create --name doge_ticker --org tmer
influx bucket create --name eth_order --org tmer
influx bucket create --name eth_ticker --org tmer
influx bucket create --name xrp_order --org tmer
influx bucket create --name xrp_ticker --org tmer
influx bucket create --name stpt_order --org tmer
influx bucket create --name stpt_ticker --org tmer
7. Code
influx bucket create --name my_new_bucket --org my_org_name
influx bucket list
influx bucket delete --name my_bucket
import websocket
import json
from influxdb_client import InfluxDBClient, Point, WriteOptions
from influxdb_client.client.write_api import SYNCHRONOUS
influxdb_url = "http://localhost:8086"
token = "TOKEN"
org = "ORG"
bucket = "BTCORDER"
client = InfluxDBClient(url=influxdb_url, token=token, org=org)
write_api = client.write_api(write_options=SYNCHRONOUS)
def on_message(ws, message):
data = json.loads(message)
bids = data['bids']
asks = data['asks']
for bid in bids:
price, quantity = bid
point = Point("order_book").tag("type", "bid").field("price", float(price)).field("quantity", float(quantity))
write_api.write(bucket=bucket, record=point)
for ask in asks:
price, quantity = ask
point = Point("order_book").tag("type", "ask").field("price", float(price)).field("quantity", float(quantity))
write_api.write(bucket=bucket, record=point)
print("Data written to InfluxDB")
def on_error(ws, error):
print(error)
def on_close(ws, close_status_code, close_msg):
print("### Closed ###")
def on_open(ws):
print("Opened connection")
if __name__ == "__main__":
socket = "wss://stream.binance.com:9443/ws/btcusdt@depth20@100ms"
ws = websocket.WebSocketApp(socket, on_open=on_open, on_message=on_message, on_error=on_error, on_close=on_close)
ws.run_forever()
influx query 'from(bucket: "btcorder") |> range(start: -1h) |> limit(n: 10)'
influx query 'from(bucket:"btc_order")
|> range(start: -1m)
|> filter(fn:(r) => r._measurement == "btc_order")' --host='http://localhost:8086' --org='tmer' --token='9XmVwizKEHy7DY6gTRX1GJU4aCSdnzYaywPri_oR46EMGzks1fAzcOyuegB-LowygahuvJOLaKmFLYOdaAlBWw=='
|> last()