mirror of
https://git.ianrenton.com/ian/spothole.git
synced 2026-02-04 01:04:33 +00:00
28 lines
910 B
Python
28 lines
910 B
Python
import json
|
|
from datetime import datetime
|
|
|
|
import pytz
|
|
import tornado
|
|
|
|
from core.prometheus_metrics_handler import api_requests_counter
|
|
from core.utils import serialize_everything
|
|
|
|
|
|
# API request handler for /api/v1/status
|
|
class APIStatusHandler(tornado.web.RequestHandler):
|
|
def initialize(self, status_data, web_server_metrics):
|
|
self.status_data = status_data
|
|
self.web_server_metrics = web_server_metrics
|
|
|
|
def get(self):
|
|
# Metrics
|
|
self.web_server_metrics["last_api_access_time"] = datetime.now(pytz.UTC)
|
|
self.web_server_metrics["api_access_counter"] += 1
|
|
self.web_server_metrics["status"] = "OK"
|
|
api_requests_counter.inc()
|
|
|
|
self.write(json.dumps(self.status_data, default=serialize_everything))
|
|
self.set_status(200)
|
|
self.set_header("Cache-Control", "no-store")
|
|
self.set_header("Content-Type", "application/json")
|