Skip to main content

Write data to M3DB with Python

This example writes some data to an M3DB service from Python, making use of the InfluxDB® library.

Variables​

These are the placeholders you will need to replace in the code sample:

VariableDescription
SERVICE_HOSTService hostname, found on the service overview page
SERVICE_PORTService port number, found on the service overview page
AVNADMIN_PASSPassword for the default avnadmin user

Prerequisites​

For this example you will need:

  1. Python 3.6 or later
  2. The Python InfluxDB library. You can install this with pip:
pip install influxdb
note

M3DB supports InfluxDB (v1) protocol so we can use the existing library for this database too.

Code​

Add the following to main.py and replace the placeholders with values for your project:

from datetime import datetime

from influxdb import InfluxDBClient


def main():
client = InfluxDBClient(host="SERVICE_HOST",
port="SERVICE_PORT",
username="avnadmin",
password="AVNADMIN_PASS",
database="default",
ssl=True,
verify_ssl=True,
path='/api/v1/influxdb')

json_body = [
{
"measurement": "cpu_load_short",
"tags": {
"host": "testnode",
},
"time": datetime.utcnow().isoformat(),
"fields": {
"value": 0.96
}
}
]
print(client.write_points(json_body))


if __name__ == "__main__":
main()

This code creates an InfluxDBClient and connects to the InfluxDB-literate endpoint on the M3DB. Then the code constructs the expected data format, and writes it to the client.

To run the code:

python main.py

If the script outputs True then there is data in your M3DB. See Visualize M3DB data with Grafana.