Official Upasist Cloud API python SDK
Project description
Official Upassist Cloud Python SDK
Installation
pip install upassist
Configuration
Set your API key globally:
import upassist
upassist.config.API_KEY = 'your-api-key'
Heartbeat
The Heartbeat class provides functionality to manage and interact with heartbeat monitors.
Basic Usage
import upassist
# Create a heartbeat instance
heartbeat = upassist.Heartbeat("your-heartbeat-slug")
# Send a heartbeat event
heartbeat.event()
Advanced Usage
You can also specify API credentials and version when creating a heartbeat instance:
heartbeat = upassist.Heartbeat(
heartbeat_slug="your-heartbeat-slug",
api_key="your-api-key", # Optional, defaults to upassist.config.API_KEY
api_version="v1", # Optional, defaults to upassist.config.API_VERSION
)
Available Methods
list(q=None, page=None, per_page=None): List all heartbeats with optional filtering and paginationdetail(): Get details of a specific heartbeatpause(): Pause a heartbeatunpause(): Resume a paused heartbeatdelete(): Delete a heartbeatevent(): Send a heartbeat eventcreate(**kwargs): Create a new heartbeat. Accepts all heartbeat parameters as keyword arguments (see below)
Example: Managing Heartbeats
# List all heartbeats
heartbeats = heartbeat.list()
# Get details of a specific heartbeat
details = heartbeat.detail()
# Pause a heartbeat
heartbeat.pause()
# Resume a heartbeat
heartbeat.unpause()
# Delete a heartbeat
heartbeat.delete()
Example: Creating a Heartbeat
# Create a new heartbeat
heartbeat = upassist.Heartbeat()
new_heartbeat = heartbeat.create(
name="My Heartbeat",
description="Monitor for my scheduled job",
group_id="group-123",
slug="my-heartbeat",
fetch_interval=300,
confirmation_period=60,
realert_period=3600,
alerts_on=True,
paused=False,
meta={"env": "prod"},
call=False,
send_sms=False,
send_email=True,
send_push_notification=False,
maintenance_window_from="01:00",
maintenance_window_until="02:00",
maintenance_window_timezone="Europe/Belfast",
alert_week_days=[1, 2, 3, 4, 5],
)
print(new_heartbeat)
Parameters for create
name(str, required): Name of the heartbeatdescription(str, optional): Descriptiongroup_id(str, optional): Group identifierslug(str, optional): Slug for the heartbeatfetch_interval(int, optional): Interval in seconds (default: 180)confirmation_period(int, optional): Seconds to wait before starting incident (default: 0)realert_period(int, optional): Seconds to notify users again about unresolved incidentalerts_on(bool, optional): Alerts on incident messages (default: True)paused(bool, optional): Whether the heartbeat is paused (default: False)meta(dict, optional): Metadata objectcall(bool, optional): Enable call alerts (default: False)send_sms(bool, optional): Enable SMS alerts (default: False)send_email(bool, optional): Enable email alerts (default: True)send_push_notification(bool, optional): Enable push notifications (default: False)maintenance_window_from(str, optional): Maintenance window start timemaintenance_window_until(str, optional): Maintenance window end timemaintenance_window_timezone(str, optional): Timezone (default: Europe/Belfast)alert_week_days(list[int], optional): Days of the week to alert (0=Sunday)
API Clients
The SDK provides both synchronous and asynchronous API clients:
from upassist import SyncAPIClient, AsyncAPIClient
# Synchronous client
sync_client = SyncAPIClient(api_key="your-api-key")
# Asynchronous client
async_client = AsyncAPIClient(api_key="your-api-key")
You can specify which client to use when creating a Heartbeat instance:
heartbeat = upassist.Heartbeat(
"your-heartbeat-slug",
api_client_cls=upassist.AsyncAPIClient # Use async client
)
Logs
The Logs entity allows you to collect and send log entries to the Upassist Cloud API.
LogItemSchema Fields
dt(datetime | None): The date and time of the log entry (ISO 8601 format).host(str | None): The host or source of the log entry.message(str | None): The log message.file(str | None): The file associated with the log entry.data(dict | None): Additional structured data for the log entry.
Available Methods
collect(log_entries: list[LogItemSchema]): Send a batch of log entries to the Upassist Cloud API
Example: Collecting Logs
from upassist.entities.logs import Logs, LogItemSchema
from datetime import datetime
# Initialize the Logs entity
logs = Logs()
# Create log entries
log_entries = [
LogItemSchema(
dt=datetime.utcnow(),
host="server1",
message="Started job",
file="worker.py",
data={"job_id": 123}
),
LogItemSchema(
dt=datetime.utcnow(),
host="server1",
message="Finished job",
file="worker.py",
data={"job_id": 123, "status": "success"}
),
]
# Send logs to Upassist Cloud
response = logs.collect(log_entries)
print(response)
Advanced Usage
You can specify API credentials and version when creating a Logs instance:
logs = Logs(
api_key="your-api-key", # Log Source API, Optional, defaults to upassist.config.API_KEY
api_version="v1", # Optional, defaults to upassist.config.API_VERSION
)
You can also use the async client for logging:
from upassist import AsyncAPIClient
logs = Logs(api_client_cls=AsyncAPIClient)
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 upassist-0.0.5.tar.gz.
File metadata
- Download URL: upassist-0.0.5.tar.gz
- Upload date:
- Size: 10.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b91eaa58c2334b09b35ebcb2337e5eaea0853e402a7f5dd68ca5c2102049cda2
|
|
| MD5 |
8dcb83ed2729cf171ebacd2b0582779b
|
|
| BLAKE2b-256 |
775245cc845697156d20ae5e5cb05f355f8a1e741d4404164524872efb2f2d80
|
File details
Details for the file upassist-0.0.5-py3-none-any.whl.
File metadata
- Download URL: upassist-0.0.5-py3-none-any.whl
- Upload date:
- Size: 12.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3b491f1faed7a4d290aa5e7d5385bbb9fb1997288030ac29dbc148b23f01c394
|
|
| MD5 |
ba137e76c065dfe3d100342c5b43b7ea
|
|
| BLAKE2b-256 |
03a0754303e31f867b8411484441cd3747007b72aa2b651a6f0d7ee063528a4c
|