Vibemonitor Python SDK — capture and send logs to Vibemonitor
Project description
Vibemonitor Python SDK
Capture and send application logs to Vibemonitor with one line of code.
Installation
pip install vibemonitor
Quick Start
import vibemonitor
vibemonitor.init(api_key="your-api-key")
That's it. All your existing Python logging is now auto-captured and sent to Vibemonitor.
import logging
logger = logging.getLogger("auth-service")
logger.info("User 46 logged in") # → sent to Vibemonitor
logger.error("OTP expired for user 45") # → sent to Vibemonitor
logger.exception("Payment failed") # → sent with full traceback
How It Works
-
Auto-capture — The SDK hooks into Python's built-in
loggingmodule. Everylogger.info(),logger.error(),logger.exception()call is automatically captured. -
Non-blocking — Logs are queued in memory and sent by a background thread. Your application is never slowed down.
-
Compressed — Logs are gzip-compressed before sending, reducing bandwidth by ~80%.
-
Safe — The SDK never crashes your application. All internal errors are silently handled.
-
Auto-detect service name — If you don't specify a service name, the SDK detects it automatically from
pyproject.toml, Flask, Django, FastAPI, or the script filename.
Get Your API Key
- Log in to vibemonitor.ai
- Go to Settings → API Keys
- Click Create API Key and copy the token
Configuration
vibemonitor.init(
api_key="your-api-key",
service="auth-service", # optional: auto-detected if not set
environment="production", # optional: from VIBEMONITOR_ENV env var
version="2.3.1", # optional: from VIBEMONITOR_VERSION env var
)
Service Name Auto-Detection
If you don't pass service=, the SDK detects it automatically:
| Priority | Source | Example |
|---|---|---|
| 1 | init(service="auth") |
auth |
| 2 | VIBEMONITOR_SERVICE env var |
auth-service |
| 3 | pyproject.toml name field |
my-api |
| 4 | Flask / Django / FastAPI app name | payments |
| 5 | Script filename | auth_service (from auth_service.py) |
| 6 | Fallback | unknown-service |
Environment Variables
All settings can be configured via environment variables:
VIBEMONITOR_SERVICE=auth-service
VIBEMONITOR_ENV=production
VIBEMONITOR_VERSION=2.3.1
VIBEMONITOR_FLUSH_INTERVAL=2.0 # seconds between flushes (default: 2)
VIBEMONITOR_MAX_QUEUE_SIZE=1000 # max logs in queue (default: 1000)
VIBEMONITOR_SCRUB_PATTERNS=email,ip,credit_card,password,jwt,aws_key
Data Scrubbing
The SDK automatically redacts sensitive data before sending. Enabled by default for: emails, phone numbers, IPs, credit cards, passwords, JWTs, AWS keys, and more.
Manual Logging
For logs outside the standard logging module:
vibemonitor.log(
severity="ERROR",
message="Custom event occurred",
attributes={"user_id": "45", "order_id": "991"}
)
Shutdown
To flush remaining logs on app exit:
vibemonitor.shutdown()
This is called automatically via atexit, but you can call it explicitly for immediate flush.
Requirements
- Python 3.8+
httpx(installed automatically)
Development
Releasing a New Version
-
Update version in
pyproject.toml:version = "0.1.0" → version = "0.2.0" -
Commit the change:
git add pyproject.toml git commit -m "bump version to 0.2.0"
-
Tag and push:
git tag v0.2.0 git push origin main --tags
GitHub Actions automatically builds and publishes to PyPI when it sees the tag.
How the Release Pipeline Works
git push --tags
│
▼
GitHub sees tag v0.2.0
│
▼
Workflow runs (.github/workflows/publish.yml):
1. Checkout code
2. Verify pyproject.toml version matches tag (safety check)
3. python -m build (creates .whl and .tar.gz)
4. twine upload to PyPI (uses PYPI_API_TOKEN secret)
│
▼
PyPI has vibemonitor 0.2.0
│
▼
Customers update: pip install --upgrade vibemonitor
Setup (One-Time)
Add your PyPI API token as a GitHub secret:
- Go to pypi.org/manage/account/#api-tokens → Create token
- Go to your SDK repo → Settings → Secrets → Actions → New secret
- Name:
PYPI_API_TOKEN, Value: the token from step 1
Local Development
To test the SDK locally without publishing:
# Install in editable mode
pip install -e .
# Override the endpoint for local testing
export VIBEMONITOR_ENDPOINT=http://localhost:8000/api/v1/ingest/logs
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vibemonitor-0.1.2.tar.gz.
File metadata
- Download URL: vibemonitor-0.1.2.tar.gz
- Upload date:
- Size: 15.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd61f9405eced164962e58b6ce21716727fd3d752e5e7c3a3004cd5addff6fef
|
|
| MD5 |
0bc72ed291151f3729fe5184b07ed5c8
|
|
| BLAKE2b-256 |
1c473643fd56df861fd3cf1ec72fa3509d325d8e61b0cbb3310e502d2b961964
|
File details
Details for the file vibemonitor-0.1.2-py3-none-any.whl.
File metadata
- Download URL: vibemonitor-0.1.2-py3-none-any.whl
- Upload date:
- Size: 15.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
39f67a6eef241669b0c737a099201add8b8e88690163a9727072bc89b0ed27d0
|
|
| MD5 |
086c8120b490369ed5b606565a6e6373
|
|
| BLAKE2b-256 |
920977c8bac3603ac918a336f81578b01e29043eec2be96e1460464ce9aaec14
|