Python Class for Sending Data to ObserveInc HTTP Endpoint
Version/Date: 1.3.3 2024-3-16
Description:
This is a python class to send events to an Observe Inc Datastream via the HTTP API endpoint.
Using this Python Class
Usage: Manual
You will need to put this with any other code and import the class as needed.
- Instantiate a copy of the
ObserveHttpSender object
- Submit JSON dictionary payload(s) via the
post_observation method.
- Call the
flush method to ensure any non batched payload data is flushed to Observe.
Usage: With pip3
pip3 install observe-http-sender
Once installed you can start python try the following.
Python Test:
from observe_http_sender import ObserveHttpSender
help(ObserveHttpSender)
Getting Started:
The arguments needed to initialize an Observer:
Python Usage:
from observe_http_sender import ObserveHttpSender
# Setup Observer and its logging level.
observer = ObserveHttpSender(OBSERVE_URL,OBSERVE_TOKEN)
observer.log.setLevel(logging.INFO)
Logging
You may use logging by setting up a logger in your code from the import logging module.
logging.basicConfig(format='%(asctime)s %(name)s %(levelname)s %(message)s', datefmt='%Y-%m-%d %H:%M:%S %z')
logger = logging.getLogger(u"OBSERVE_EXAMPLE")
logger.setLevel(logging.INFO)
You may set a different logging level for the ObserveHttpSender class.
# Setup Observer and its logging level.
observer = ObserveHttpSender(OBSERVE_CUSTOMER,OBSERVE_TOKEN,OBSERVE_DOMAIN)
observer.log.setLevel(logging.INFO)
Notes:
- The
check_connectivity method that is optional but recommended before attempting to submit large amounts of data to Observe. See example.py for use and docstrings on the method for details.
- You MUST call the method
flush before your code completes to ensure all remaining non batch posted data is sent to Observe.
- Methods
get_pop_empty_fields and set_pop_empty_fields. Defaults to True to remove empty/null fields from payloads to save ingestion cost.
- Methods
get_payload_json_format and set_payload_json_format. Defaults to True to post payload in format application/json. False will post the payload in format text/plain Set this at instantiation for text payloads.
- Methods
get_post_path and set_post_path. Defaults to None append an optional path segment example /orca/alerts. This will show in the Datastream EXTRAS field as path.
Example Usage:
The included python script example-postcsv.py takes a csv file with a header row and posts it to Observe in JSON format.
Usage:
python3 example-postcsv.py data/sample-authevents.csv