Metadata-Version: 2.1
Name: skylog_sdk
Version: 0.1.0
Summary: skylog alerting sdk
Project-URL: Homepage, https://github.com/vahidtwo/skylog-sdk
Author-email: Vahid Imanian <vahidtwo@gmail.com>
License: 
         ----------------------------------------------------------------------------
         "THE BEER-WARE LICENSE" (Revision 42):
         vahid wrote this file.  As long as you retain this notice you
         can do whatever you want with this stuff. If we meet some day, and you think
         this stuff is worth it, you can buy me a beer in return.   vahid-imanian
         ----------------------------------------------------------------------------
License-File: LICENSE
Keywords: log,sdk,skylog
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.8
Requires-Dist: python-decouple==3.6
Requires-Dist: requests==2.27.1
Provides-Extra: dev
Requires-Dist: black; extra == 'dev'
Requires-Dist: bumpver; extra == 'dev'
Requires-Dist: isort; extra == 'dev'
Requires-Dist: pip-tools; extra == 'dev'
Requires-Dist: pytest; extra == 'dev'
Description-Content-Type: text/markdown


# Python SDK for Skylog Integration

Skylog is a robust service designed for seamless integration with various platforms like Sentry, Telegram,
and more, enabling the efficient transmission of logs and rapid identification of issues.

This Python SDK facilitates easy interaction with Skylog services, allowing users to:
- fire alert
- stop alert
- notify

# How to install 
install from gitlab 
```bash
pip install skylog-sdk
```

## Setup and Configuration

- **Environment Variables**: Configure the following variables in your project environment:
  - `DEFAULT_SKY_LOG_ALERTING_TELEGRAM_ALERT_NAME`: Default alert name for Telegram
  - `DEFAULT_SKY_LOG_ALERTING_PHONE_CALL_ALERT_NAME`: Default alert name for phone calls
  - `DEFAULT_SKY_LOG_ALERTING_SMS_ALERT_NAME`: Default alert name for SMS
  - `SKY_LOG_BASE_URL`: Base URL for Skylog API calls
  - `SKY_LOG_ALERTING_TOKEN`: Your Skylog authentication token

- **Proxy Configuration**: If using a proxy, include the following additional variables:
  - `PROXY_USERNAME`
  - `PROXY_PASSWORD`
  - `PROXY_IP`
  - `PROXY_PORT`

## Usage Example

```python
from src.skylog import AlertingSkyLogClient, AlertingProvider

# Initialize the Skylog client with the desired provider (e.g., Telegram)
client = AlertingSkyLogClient(provider=AlertingProvider.telegram)

# Example Operations:
client.fire_alert(description='Issue detected', instance_name='unique_key', provider=AlertingProvider.sms)
client.stop_alert(description='Issue resolved', instance_name='unique_key', provider=AlertingProvider.sms)
client.notify(description='Alert notification', instance_name='unique_key', provider=AlertingProvider.telegram)
```

## Concepts to Understand

### Alertname and Instance

- **Alertname**: Represents the provider or service. It identifies where Skylog sends alerts.
- **Instance**: A unique identifier within a group alert, specifying a particular part of a universal alert.

### Alerts Management

- **Firing an Alert**: Triggering an alert, resulting in immediate notifications sent to relevant endpoints.
- **Stopping an Alert**: Removing a fired alert, resolving it and stopping further notifications.
- **Notifying an Alert**: Sending messages to endpoints without adding records to the triggered list.
