Update README with branded header and documentation links

- Add centered logo and title with product branding
- Add links to product website and documentation
- Add badges for package manager and license
- Add Other SDKs table with cross-references
- Add Support section with dev@ironservices.io email
- Update repository links to git.marketally.com

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
David Friedel 2025-12-27 10:40:21 +00:00
parent ed9da3dc55
commit 8477bd7986
1 changed files with 99 additions and 118 deletions

217
README.md
View File

@ -1,10 +1,41 @@
# IronTelemetry SDK for Python
<p align="center">
<a href="https://irontelemetry.com">
<img src="https://irontelemetry.com/logo.png" alt="IronTelemetry" width="120" />
</a>
</p>
Error monitoring and crash reporting SDK for Python applications. Capture exceptions, track user journeys, and get insights to fix issues faster.
<h1 align="center">IronTelemetry SDK for Python</h1>
[![PyPI](https://img.shields.io/pypi/v/irontelemetry.svg)](https://pypi.org/project/irontelemetry/)
[![Python](https://img.shields.io/pypi/pyversions/irontelemetry.svg)](https://pypi.org/project/irontelemetry/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
<p align="center">
<strong>Error monitoring and crash reporting for Python applications</strong>
</p>
<p align="center">
<a href="https://pypi.org/project/irontelemetry/"><img src="https://img.shields.io/pypi/v/irontelemetry.svg" alt="PyPI version"></a>
<a href="https://pypi.org/project/irontelemetry/"><img src="https://img.shields.io/pypi/pyversions/irontelemetry.svg" alt="Python versions"></a>
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT"></a>
</p>
<p align="center">
<a href="https://irontelemetry.com">Website</a>
<a href="https://irontelemetry.com/docs">Documentation</a>
<a href="https://irontelemetry.com/docs/python">Python Guide</a>
<a href="https://git.marketally.com/ironservices">Git</a>
</p>
---
**IronTelemetry** helps you capture exceptions, track user journeys, and get actionable insights to fix issues faster. Built for developers who want simple, powerful error monitoring without the complexity.
## Features
- **Exception Capture** - Automatically capture and report exceptions with full stack traces
- **Journey Tracking** - Understand what users did before an error occurred
- **Breadcrumbs** - Add context with custom breadcrumbs and metadata
- **Framework Support** - Built-in integrations for Django, Flask, FastAPI
- **Async Support** - Full async/await support
- **Type Hints** - Complete type annotations for IDE support
- **Offline Queue** - Events are queued when offline and sent when connectivity returns
## Installation
@ -14,15 +45,17 @@ pip install irontelemetry
## Quick Start
### Basic Exception Capture
### Initialize the SDK
```python
import irontelemetry
# Initialize with your DSN
irontelemetry.init("https://pk_live_xxx@irontelemetry.com")
```
# Capture exceptions
### Capture Exceptions
```python
try:
do_something()
except Exception as e:
@ -30,14 +63,9 @@ except Exception as e:
raise
```
### Journey Tracking
Track user journeys to understand the context of errors:
### Track User Journeys
```python
import irontelemetry
# Track a complete user journey
with irontelemetry.start_journey("Checkout Flow"):
irontelemetry.set_user("user-123", "user@example.com")
@ -51,7 +79,48 @@ with irontelemetry.start_journey("Checkout Flow"):
send_confirmation_email()
```
Any exceptions captured during the journey are automatically correlated.
### Add Breadcrumbs
```python
from irontelemetry import add_breadcrumb, BreadcrumbCategory
add_breadcrumb("User clicked checkout button", BreadcrumbCategory.UI)
add_breadcrumb("Payment API called", BreadcrumbCategory.HTTP)
```
## Framework Integrations
### Django
```python
# settings.py
INSTALLED_APPS = [
'irontelemetry.django',
# ...
]
IRONTELEMETRY_DSN = "https://pk_live_xxx@irontelemetry.com"
```
### Flask
```python
from flask import Flask
from irontelemetry.flask import IronTelemetry
app = Flask(__name__)
IronTelemetry(app, dsn="https://pk_live_xxx@irontelemetry.com")
```
### FastAPI
```python
from fastapi import FastAPI
from irontelemetry.fastapi import IronTelemetryMiddleware
app = FastAPI()
app.add_middleware(IronTelemetryMiddleware, dsn="https://pk_live_xxx@irontelemetry.com")
```
## Configuration
@ -62,119 +131,31 @@ init(TelemetryOptions(
dsn="https://pk_live_xxx@irontelemetry.com",
environment="production",
app_version="1.2.3",
sample_rate=1.0, # 100% of events
sample_rate=1.0,
debug=False,
before_send=lambda event: event if "expected" not in (event.message or "") else None,
))
```
### Configuration Options
## Documentation
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| `dsn` | str | required | Your Data Source Name |
| `environment` | str | 'production' | Environment name |
| `app_version` | str | '0.0.0' | Application version |
| `sample_rate` | float | 1.0 | Sample rate (0.0 to 1.0) |
| `max_breadcrumbs` | int | 100 | Max breadcrumbs to keep |
| `debug` | bool | False | Enable debug logging |
| `before_send` | callable | None | Hook to filter/modify events |
| `enable_offline_queue` | bool | True | Enable offline queue |
| `max_offline_queue_size` | int | 500 | Max offline queue size |
For complete documentation, visit [irontelemetry.com/docs](https://irontelemetry.com/docs).
## Features
## Other SDKs
- **Automatic Exception Capture**: Capture and report exceptions with full stack traces
- **Journey Tracking**: Track user flows and correlate errors with context
- **Breadcrumbs**: Leave a trail of events leading up to an error
- **User Context**: Associate errors with specific users
- **Tags & Extras**: Add custom metadata to your events
- **Offline Queue**: Events are queued when offline and sent when connectivity returns
- **Async Support**: Full async/await support with `capture_exception_async` and `capture_message_async`
- **Type Hints**: Full type annotations for IDE support
| Platform | Package |
|----------|---------|
| JavaScript/TypeScript | [@ironservices/telemetry](https://git.marketally.com/ironservices/irontelemetry-js) |
| .NET | [IronTelemetry.Client](https://git.marketally.com/ironservices/irontelemetry-dotnet) |
| Go | [irontelemetry-go](https://git.marketally.com/ironservices/irontelemetry-go) |
| Java | [irontelemetry-java](https://git.marketally.com/ironservices/irontelemetry-java) |
| Rust | [irontelemetry](https://git.marketally.com/ironservices/irontelemetry-rust) |
## Breadcrumbs
## Support
```python
from irontelemetry import add_breadcrumb, BreadcrumbCategory
# Add breadcrumbs to understand what happened before an error
add_breadcrumb("User clicked checkout button", BreadcrumbCategory.UI)
add_breadcrumb("Payment API called", BreadcrumbCategory.HTTP)
# Or with full control
add_breadcrumb(
"User logged in",
category=BreadcrumbCategory.AUTH,
level=SeverityLevel.INFO,
data={"user_id": "123"},
)
```
## Global Exception Handling
```python
import irontelemetry
irontelemetry.init("your-dsn")
irontelemetry.use_unhandled_exception_handler()
```
This sets up a handler for `sys.excepthook` to capture uncaught exceptions.
## Helper Methods
```python
from irontelemetry import track_step
# Track a step with automatic error handling
track_step("Process Order", lambda: process_order())
# With return value
result = track_step("Calculate Total", lambda: calculate_total())
```
## Async Support
```python
import irontelemetry
# Async exception capture
await irontelemetry.capture_exception_async(error)
# Async message capture
await irontelemetry.capture_message_async("Something happened")
# Async flush
await irontelemetry.flush_async()
```
## Flushing
```python
# Flush pending events before app shutdown
irontelemetry.flush()
```
## Type Support
This package includes full type annotations:
```python
from irontelemetry import (
TelemetryOptions,
TelemetryEvent,
Breadcrumb,
SeverityLevel,
BreadcrumbCategory,
)
```
## Python Version Support
- Python 3.8+
- Full type hints support
- async/await support
- **Documentation**: [irontelemetry.com/docs](https://irontelemetry.com/docs)
- **Email**: dev@ironservices.io
- **Issues**: [git.marketally.com/ironservices/irontelemetry-python/issues](https://git.marketally.com/ironservices/irontelemetry-python/issues)
## License