diff --git a/README.md b/README.md index 12bd9f6..4bfa10e 100644 --- a/README.md +++ b/README.md @@ -58,17 +58,19 @@ services: - influxdb influxdb: - image: influxdb:1.8.3 + image: influxdb:2.0 restart: always volumes: - influxdb:/var/lib/influxdb ports: - - 8083:8083 - 8086:8086 environment: - - INFLUXDB_ADMIN_USER="admin" - - INFLUXDB_ADMIN_PASSWORD="password" - - INFLUXDB_DB="speedtest" + - DOCKER_INFLUXDB_INIT_MODE=setup + - DOCKER_INFLUXDB_INIT_USERNAME=admin + - DOCKER_INFLUXDB_INIT_PASSWORD=password + - DOCKER_INFLUXDB_INIT_ORG=myorg + - DOCKER_INFLUXDB_INIT_BUCKET=speedtest + - DOCKER_INFLUXDB_INIT_RETENTION=1w speedtest: image: robinmanuelthiel/speedtest:latest diff --git a/demo/dashboard.json b/demo/dashboard.json index 0f6237b..1c059ad 100644 --- a/demo/dashboard.json +++ b/demo/dashboard.json @@ -84,30 +84,11 @@ "measurement": "download", "orderByTime": "ASC", "policy": "default", - "query": "SELECT mean(\"value\") FROM \"download\" WHERE $timeFilter GROUP BY time($__interval) fill(null)", - "rawQuery": false, + "query": "from(bucket: \"speedtest\")\n |> range(start: $__timeFrom, stop: $__timeTo)\n |> filter(fn: (r) => r[\"_measurement\"] == \"download\")\n |> filter(fn: (r) => r[\"_field\"] == \"value\")\n |> aggregateWindow(every: $__interval, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")", + "rawQuery": true, "refId": "A", "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "value" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - }, - { - "params": [ - " / 125000" - ], - "type": "math" - } - ] - ], + "select": [], "tags": [] }, { @@ -129,28 +110,11 @@ "measurement": "upload", "orderByTime": "ASC", "policy": "default", + "query": "from(bucket: \"speedtest\")\n |> range(start: $__timeFrom, stop: $__timeTo)\n |> filter(fn: (r) => r[\"_measurement\"] == \"upload\")\n |> filter(fn: (r) => r[\"_field\"] == \"value\")\n |> aggregateWindow(every: $__interval, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")", + "rawQuery": true, "refId": "B", "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "value" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - }, - { - "params": [ - "/125000" - ], - "type": "math" - } - ] - ], + "select": [], "tags": [] } ], diff --git a/demo/docker-compose.yaml b/demo/docker-compose.yaml index 10ee535..f4e5ffa 100644 --- a/demo/docker-compose.yaml +++ b/demo/docker-compose.yaml @@ -11,17 +11,19 @@ services: - influxdb influxdb: - image: influxdb:1.8.3 + image: influxdb:2.0 restart: always volumes: - influxdb:/var/lib/influxdb ports: - - 8083:8083 - 8086:8086 environment: - - INFLUXDB_ADMIN_USER="admin" - - INFLUXDB_ADMIN_PASSWORD="password" - - INFLUXDB_DB="speedtest" + - DOCKER_INFLUXDB_INIT_MODE=setup + - DOCKER_INFLUXDB_INIT_USERNAME=admin + - DOCKER_INFLUXDB_INIT_PASSWORD=password + - DOCKER_INFLUXDB_INIT_ORG=myorg + - DOCKER_INFLUXDB_INIT_BUCKET=speedtest + - DOCKER_INFLUXDB_INIT_RETENTION=1w speedtest: image: robinmanuelthiel/speedtest:latest @@ -37,6 +39,7 @@ services: - DB_NAME=speedtest - DB_USERNAME=admin - DB_PASSWORD=password + - INFLUXDB_TOKEN=my-token privileged: true # Needed for 'sleep' in the loop depends_on: - influxdb diff --git a/speedtest.sh b/speedtest.sh old mode 100755 new mode 100644 index 773eae9..b108985 --- a/speedtest.sh +++ b/speedtest.sh @@ -9,6 +9,9 @@ DB_USERNAME="${DB_USERNAME:-admin}" DB_PASSWORD="${DB_PASSWORD:-password}" SPEEDTEST_HOSTNAME="${SPEEDTEST_HOSTNAME}" SPEEDTEST_SERVER_ID="${SPEEDTEST_SERVER_ID}" +INFLUXDB_TOKEN="${INFLUXDB_TOKEN:-my-token}" +INFLUXDB_ORG="${INFLUXDB_ORG:-my-org}" +INFLUXDB_BUCKET="${INFLUXDB_BUCKET:-speedtest}" run_speedtest() { @@ -53,11 +56,14 @@ run_speedtest() if $DB_SAVE; then echo "Saving values to database..." - curl -s -S -XPOST "$DB_HOST/write?db=$DB_NAME&precision=s&u=$DB_USERNAME&p=$DB_PASSWORD" \ + curl -s -S -XPOST "$DB_HOST/api/v2/write?org=$INFLUXDB_ORG&bucket=$INFLUXDB_BUCKET&precision=s" \ + -H "Authorization: Token $INFLUXDB_TOKEN" \ --data-binary "download,host=$HOSTNAME value=$DOWNLOAD $DATE" - curl -s -S -XPOST "$DB_HOST/write?db=$DB_NAME&precision=s&u=$DB_USERNAME&p=$DB_PASSWORD" \ + curl -s -S -XPOST "$DB_HOST/api/v2/write?org=$INFLUXDB_ORG&bucket=$INFLUXDB_BUCKET&precision=s" \ + -H "Authorization: Token $INFLUXDB_TOKEN" \ --data-binary "upload,host=$HOSTNAME value=$UPLOAD $DATE" - curl -s -S -XPOST "$DB_HOST/write?db=$DB_NAME&precision=s&u=$DB_USERNAME&p=$DB_PASSWORD" \ + curl -s -S -XPOST "$DB_HOST/api/v2/write?org=$INFLUXDB_ORG&bucket=$INFLUXDB_BUCKET&precision=s" \ + -H "Authorization: Token $INFLUXDB_TOKEN" \ --data-binary "ping,host=$HOSTNAME value=$PING $DATE" echo "Values saved." fi