Skip to main content

theia

Build Status Maintainability Test Coverage PyPI version Documentation Status

Simple and lightweight log aggregator

Introduction

Theia is a log aggregator that collects logs from multiple log files usually on multiple machines and provides the log entries on a single endpoint. Each recorded entry comes from a single source (log file) and can be tagged with multiple tags. This way you can query an filter by the source (for example /var/log/apache or /var/log/reds) and tags (for example "production1", "cache-server", "testing" etc), or you can just simply match a pattern against the content of the entry.

Theia has three parts:

  • watcher - this is the agent process running on the machine where you have your logs. You will have multiple watchers, but usually a single watcher per node
  • collector - this is the master process, usually running on a sperate node where you're going to collect the logs. Provides the interface for pushing the log events and an interface for querying the aggregated logs.
  • client - client for querying and watching live events. This connects to the collector via websocket and queries the collected events or registers a filter for live events.

Installation

Theia comes as a single python package (only python3 is supported).

With pip:

pip install theia

Running the collector

This process collects and stores the events. The built-in database uses text files to store the events.

Create a directory where you want to keep the events, and run the collector server:

mkdir data

python -m theia.cli collect -d ./data

This will run the server listening on port 6433.

Running a watcher

Make sure you have the collector running.

Then, run the watcher:

python -m theia.cli watch -c localhost -f /var/log/httpd/access.log -t web-access

This would watch for changes in access.log and send events to the collector tagged with web-access

Run a query

To query for all log events with tag web-access:

python -m theia.cli query -c localhost -t web-access

Run a live filter

To watch the events with tag web-access as they arrive in real-time:

python -m theia.cli query -l -c localhost -t web-access

Note

This is still work in progress and is far from production ready

Metadata

Release files for theia 0.9.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for theia 0.9.2
File Size Uploaded Provenance
theia-0.9.2.tar.gz 30.6 kB Without provenance Details

Release files / theia-0.9.2.tar.gz

Download URL theia-0.9.2.tar.gz
Size 30.6 kB
Tags Source
SHA-256 checksum
How to use checksums
93e2d07e993e2f552a2a57f9d037c2989286cba93526b30131c05de4c6006497
BLAKE2b-256 checksum
How to use checksums
dddac5844d3d99e31348e0e43e3a2d1508634c29b283bb5ff122d21fee69bc20
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for theia 0.9.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.9.2 This release

1 release file No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page