Update readme
This commit is contained in:
parent
2dddf82886
commit
f9bfc8a2d1
1 changed files with 141 additions and 1 deletions
142
README.rst
142
README.rst
|
@ -15,8 +15,148 @@ platform, using their `kafka <https://aiven.io/kafka>`_ and `postgresql
|
|||
<https://aiven.io/postgresql>`_ services.
|
||||
|
||||
|
||||
Install and run the application with::
|
||||
Quickstart
|
||||
==========
|
||||
|
||||
Easiest way to start the application is to clone it, install it and run the
|
||||
console scripts via the command line::
|
||||
|
||||
pip install .
|
||||
chweb_collect -c config.yaml &
|
||||
chweb_consume -c config.yaml &
|
||||
|
||||
Sites
|
||||
-----
|
||||
|
||||
You can specify the sites you want checked in the yaml config file. They are
|
||||
stored in the ``sites`` key and are represented as a list of objects with
|
||||
``url`` and ``check_interval`` as mandatory fields, and regex as an optional
|
||||
field that can freely omitted which checks the body of the response against the
|
||||
regex expression::
|
||||
|
||||
- url: "https://dsadakjhkjsahkjh.com"
|
||||
regex: "domain"
|
||||
check_interval: 5
|
||||
- url: "https://example.com"
|
||||
regex: "aaaaaaaaaaaaa"
|
||||
check_interval: 8
|
||||
- url: "https://example.com/404"
|
||||
check_interval: 13
|
||||
|
||||
Logging configuration
|
||||
---------------------
|
||||
|
||||
.. highlight:: yaml
|
||||
|
||||
The ``logging`` section must be present. A simple example of a console logger
|
||||
as seen in ``config.yaml``::
|
||||
|
||||
logging:
|
||||
version: 1
|
||||
formatters:
|
||||
standard:
|
||||
format: "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
|
||||
error:
|
||||
format: "%(levelname)s <PID %(process)d:%(processName)s> %(name)s.%(funcName)s(): %(message)s"
|
||||
handlers:
|
||||
console:
|
||||
class: logging.StreamHandler
|
||||
level: DEBUG
|
||||
formatter: standard
|
||||
stream: ext://sys.stdout
|
||||
root:
|
||||
level: DEBUG
|
||||
handlers: [console]
|
||||
propogate: yes
|
||||
|
||||
Postgres
|
||||
--------
|
||||
|
||||
Postgres settings with aivens certs, passwords, etc. You'll get them once you
|
||||
setup the postgres service on https://console.aiven.io/. My postgres section
|
||||
in the config looks like this::
|
||||
|
||||
postgres:
|
||||
dbhost: "pg-2e0f365c-vladanovic-4654.aivencloud.com"
|
||||
dbport: 23700
|
||||
dbname: "defaultdb"
|
||||
dbuser: "avnadmin"
|
||||
dbpass: ""
|
||||
dbcert: "./certs/pg.pem"
|
||||
|
||||
* ``dbhost`` and ``dbport``, ``dbuser`` and ``dbpass`` are straightforward.
|
||||
* ``defaultdb`` is the database present by default, when the service is
|
||||
created. You can create another database if it rocks your boat.
|
||||
* ``dbcert`` is the cert which opens in a modal popup in the console. You need
|
||||
to copy it manually to a file on a path you later state in the config.
|
||||
|
||||
Kafka
|
||||
-----
|
||||
|
||||
Kafka is also a service easily provisioned through aivens console. After it's
|
||||
set up you get a config section similar to this one::
|
||||
|
||||
kafka:
|
||||
servers:
|
||||
- "kafka-f7ae38e-vladanovic-4654.aivencloud.com:23702"
|
||||
topic: "sitestats"
|
||||
cafile: "./certs/ca.pem"
|
||||
cert: "./certs/service.cert"
|
||||
key: "./certs/service.key"
|
||||
passwd: ""
|
||||
|
||||
* ``servers`` is a list because that's how the library is initialized, which
|
||||
makes sense if you have multiple brokers.
|
||||
* ``topic`` is the kafka topic messages are sent to. You need to define it in
|
||||
aivens console as well.
|
||||
* ``cafile``, ``cert`` and ``key`` are the ssl certificates you get when aivens
|
||||
kafka service is ready.
|
||||
* ``password`` is not needed afaik, but you can give it a go.
|
||||
|
||||
Full config file
|
||||
================
|
||||
|
||||
while reading about the config values might be good, here's a better
|
||||
all-in-one config file, which ofc you'd need to update with your own values::
|
||||
|
||||
kafka:
|
||||
servers:
|
||||
- "kafka-f7ae38e-vladanovic-4654.aivencloud.com:23702"
|
||||
topic: "sitestats"
|
||||
cafile: "./certs/ca.pem"
|
||||
cert: "./certs/service.cert"
|
||||
key: "./certs/service.key"
|
||||
passwd: ""
|
||||
postgres:
|
||||
dbhost: "pg-2e0f365c-vladanovic-4654.aivencloud.com"
|
||||
dbport: 23700
|
||||
dbname: "defaultdb"
|
||||
dbuser: "avnadmin"
|
||||
dbpass: ""
|
||||
dbcert: "./certs/pg.pem"
|
||||
sites:
|
||||
- url: "https://dsadakjhkjsahkjh.com"
|
||||
regex: "domain"
|
||||
check_interval: 5
|
||||
- url: "https://example.com"
|
||||
regex: "aaaaaaaaaaaaa"
|
||||
check_interval: 8
|
||||
- url: "https://example.com/404"
|
||||
check_interval: 13
|
||||
logging:
|
||||
version: 1
|
||||
formatters:
|
||||
standard:
|
||||
format: "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
|
||||
error:
|
||||
format: "%(levelname)s <PID %(process)d:%(processName)s> %(name)s.%(funcName)s(): %(message)s"
|
||||
handlers:
|
||||
console:
|
||||
class: logging.StreamHandler
|
||||
level: DEBUG
|
||||
formatter: standard
|
||||
stream: ext://sys.stdout
|
||||
root:
|
||||
level: DEBUG
|
||||
handlers: [console]
|
||||
propogate: yes
|
||||
|
|
Loading…
Add table
Reference in a new issue