Skip to content

It is a Flask extension to view incidents caused by the server. Pure JS/HTML

License

Notifications You must be signed in to change notification settings

fcoagz/flask-status

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

En español

FlaskStatus

It is a Flask extension to view incidents caused by the server.

Example Status

This is handled based on the requests that users make. Captures the server response and uses the conditional expression to quickly classify whether the request was successful or failed.

Note: Updates every minute

Codes HTTP

Some of the HTTP states that the server takes into account are:

  • 200 OK: Indicates that the request has been completed successfully.

  • 404 Not Found: Indicates that the requested resource is not available on the server.

  • 500 Internal Server Error: Indicates that an internal server error has occurred while processing the client request.

  • 502 Bad Gateway: Indicates that there is a communication error between servers, generally when one server acts as an intermediary and cannot obtain a valid response.

  • 503 Service Unavailable: Indicates that the server is currently unavailable, possibly due to maintenance or overload.

  • 504 Gateway Timeout: Indicates that the server has not received a timely response from an upstream server, which may indicate connectivity problems.

Install

pip install flask-server-status

Use

  • Import and configure FlaskStatus in your Flask application. You need a database to record the logs.
from flask import Flask
from flask_server_status import FlaskStatus

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///tmp/status.db'
FlaskStatus(app)

You can configure which routes you want to be shown:

FlaskStatus(app, routes=['/'])

The default path is: /status. Although you can configure the route.

FlaskStatus(app, url_prefix='/status')
  • Define routes. The use of docstring. It will be used to define the route name. # <ROUTE NAME>
@app.route('/')
def index():
    """
    # Index
    """ # This is the docstring
    return 'Welcome to API!', 200 # 200 is the status code

In case you have not defined the route name. By default, it will take the name of the endpoint role.

API

FlaskStatus comes with a built-in API to configure the routes that are generated in the database.

app.config['API_ENABLED'] = True
app.config['API_SECRET'] = 'tSx0L5exSjiPqqXs'

Endpoints

  • PUT /flask-status/configure: Allows you to modify a route. json={'rule': '/', 'name': 'Hello World!', 'doc': ''}

  • DELETE /flask-status/configure: Allows you to delete a route. json={'rule': '/'}

Example

import requests

r = requests.delete('http://127.0.0.1:5000/flask-status/configure', headers={
    'Authorization': 'Bearer tSx0L5exSjiPqqXs'
    }, json={
    'rule': '/'
})

Forked from

The page was built by Statsig's Open-Source Status Page.

Languages

  • Python 48.4%
  • JavaScript 24.7%
  • CSS 18.8%
  • HTML 8.1%