Een referentie-implementatie van de Logboek dataverwerkingen standaard.
Deze repository bevat de volgende componenten:
proto
bevat de Protocol Buffers-definities;server
de logboekserver, ontvangt verwerkingshandelingen (logs) van componenten welke data verwerken;libs
softwarebibliotheken (Go en Python) om te gebruiken in dataverwerkenden componenten. Maak het eenvoudig om verwerkingshandelingen op te sturen naar de logboekserver.
De logboekserver implementeerd de gRPC-service zoals beschreven in logboek.proto
.
Verwerkingshandelingen worden opgeslagen in een zogenaamde storage backend. De volgende worden ondersteund:
- SQLite: handig voor tijdens het ontwikkelen, niet geschikt voor productie. Er is geen databaseserver nodig, de logboekserver kan zelfstandig de verwerkingshandelingen in een bestand opslaan;
- Cassandra: een gedistribueerde database, geschikt voor het opslaan van grote hoeveelheden data.
Databaseschema's voor SQLite en Cassandra zijn te vinden in server/pkg/storage/schema
.
De logboekserver is beschikbaar als Docker image: ghcr.io/minbzk/logboek-dataverwerkingen-logboek
.
docker run --rm --publish 9000:9000 --volume ./instance:/var/lib/logboek ghcr.io/minbzk/logboek-dataverwerkingen-logboek
In de ./instance
directory is het databasebestand te vinden met de verwerkingshandelingen.
De volgende opties zijn beschikbaar, als environment variables:
LISTEN_ADDRESS
: adres waar de gRPC service op beschikbaar is. Naar dit adres sturen de dataverwerkenden componenten de verwerkingshandelingen. Standaard is dit127.0.0.1:9000
;STORAGE_TYPE
: welke storage backend er gebuikt moet worden. Mogelijke waarden zijn:sqlite
encassandra
. Standaard is datsqlite
;STORAGE_SQLITE_PATH
: waar het SQLite-databasebestand opgslagen moet worden. Standaard is ditlogboek.db
;STORAGE_CASSANDRA_SERVERS
: een lijst van Cassandra servers. Standaard is dit127.0.0.1:9042
.
Eenvoudig voorbeeld van hoe de Python-softwarebibliotheek gebruikt kan worden in een dataverwerkende applicatie.
from logboek import get_processing_operator
logboek_operator = get_processing_operator()
with logboek_operator.start_proccessing_as_current("handeling"):
# verwerking van gegevens
....
Kijk voor uitgebreidere voorbeelden in README.md
's in de afzonderlijke directory's: libs/logboek-go
en libs/logboek-python
.
# Installeer de benodigdheden
make deps
# Genereer code voor de Go- en Python-softwarebibliotheken
make proto
make server-image
Licensed under EUPL v1.2