Skip to content
This repository was archived by the owner on Oct 29, 2024. It is now read-only.

Commit d1c281a

Browse files
committed
add extra tutorial for timeseries
1 parent 070c2cf commit d1c281a

File tree

2 files changed

+68
-2
lines changed

2 files changed

+68
-2
lines changed

examples/tutorial.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,10 @@ def main(host='localhost', port=8086):
6060
def parse_args():
6161
parser = argparse.ArgumentParser(
6262
description='example code to play with InfluxDB')
63-
parser.add_argument('--host', type=str, required=True)
64-
parser.add_argument('--port', type=int, required=True)
63+
parser.add_argument('--host', type=str, required=False, default='localhost',
64+
help='hostname of InfluxDB http API')
65+
parser.add_argument('--port', type=int, required=False, default=8086,
66+
help='port of InfluxDB http API')
6567
return parser.parse_args()
6668

6769

examples/tutorial_timeseries.py

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
import argparse
2+
3+
from influxdb import InfluxDBClient
4+
import datetime
5+
import random
6+
7+
8+
USER = 'root'
9+
PASSWORD = 'root'
10+
DBNAME = 'tutorial'
11+
12+
13+
def main(host='localhost', port=8086, nb_day=15):
14+
15+
nb_day = 15 # number of day to generate time series
16+
timeinterval_min = 5 # create an event every x minutes
17+
total_minutes = 1440 * nb_day
18+
total_records = int(total_minutes / timeinterval_min)
19+
now = datetime.datetime.today()
20+
cpu_series = [{
21+
'name': "server_data.cpu_idle",
22+
'columns': ["time", "value", "hostName"],
23+
'points': []
24+
}]
25+
26+
for i in range(0, total_records):
27+
past_date = now - datetime.timedelta(minutes=i * timeinterval_min)
28+
value = random.randint(0, 200)
29+
hostName = "server-%d" % random.randint(1, 5)
30+
pointValues = [int(past_date.strftime('%s')), value, hostName]
31+
cpu_series[0]['points'].append(pointValues)
32+
33+
client = InfluxDBClient(host, port, USER, PASSWORD, DBNAME)
34+
35+
print("Create database: " + DBNAME)
36+
client.create_database(DBNAME)
37+
38+
print("Write points #: {0}".format(total_records))
39+
client.write_points(cpu_series)
40+
41+
query = 'SELECT MEAN(value) FROM server_data.cpu_idle GROUP BY time(30m) WHERE time > now() - 1d;'
42+
print("Queying data: " + query)
43+
result = client.query(query)
44+
print("Result: {0}".format(result))
45+
46+
print("Delete database: " + DBNAME)
47+
client.delete_database(DBNAME)
48+
49+
50+
def parse_args():
51+
parser = argparse.ArgumentParser(
52+
description='example code to play with InfluxDB')
53+
parser.add_argument('--host', type=str, required=False, default='localhost',
54+
help='hostname influxdb http API')
55+
parser.add_argument('--port', type=int, required=False, default=8086,
56+
help='port influxdb http API')
57+
parser.add_argument('--nb_day', type=int, required=False, default=15,
58+
help='number of days to generate time series data')
59+
return parser.parse_args()
60+
61+
62+
if __name__ == '__main__':
63+
args = parse_args()
64+
main(host=args.host, port=args.port, nb_day=args.nb_day)

0 commit comments

Comments
 (0)