Skip to content

Instantly share code, notes, and snippets.

@CrashLaker
Created December 2, 2020 21:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save CrashLaker/a06d8d80c551a54ebd802f81134f0670 to your computer and use it in GitHub Desktop.
Save CrashLaker/a06d8d80c551a54ebd802f81134f0670 to your computer and use it in GitHub Desktop.
medium-grafana-simplejson-mongodb
from flask import Flask, request, jsonify
from flask_cors import CORS
import pymongo
import dateutil.parser
app = Flask(__name__)
cors = CORS(app)
@app.route('/', methods=['GET', 'POST'])
def main():
return "você acessou o /"
@app.route('/search', methods=['GET', 'POST'])
def r_search():
return "você acessou o /search"
@app.route('/query', methods=['GET', 'POST'])
def r_query():
req = request.json
from_dt = dateutil.parser.parse(req["range"]["from"])
to_dt = dateutil.parser.parse(req["range"]["to"])
client = pymongo.MongoClient("mongodb://root:root123@192.168.31.186:27017")
col = client["metrics"]["ec2_cpu"]
datapoints = []
for doc in col.find({
"date": {
"$gte": from_dt, # date maior que from_dt
"$lte": to_dt, # date menor que to_dt
}
}, {"_id": 0}):
datapoints.append([
doc["value"],
doc["date"].timestamp()*1000
])
response = [
{
"target": req["targets"][0]["target"],
"datapoints": datapoints,
}
]
return jsonify(response)
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8081)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment