Skip to main content

Python

Create a log stream

First, we'll need to create a log stream. This is a one time operation, and we recommend storing log entries with same schema in a single log stream. So, for example, you can use one log stream per application (given that all logs from that application have the same schema).

import requests# TODO: Replace the url with your Parseable URL and stream nameurl = "https://<parseable-url>/api/v1/logstream/<stream-name>"payload = {}headers = {    # TODO: Replace the basic auth credentials with your Parseable credentials    "Authorization": "Basic YWRtaW46YWRtaW4="}response = requests.request("PUT", url, headers=headers, data=payload)print(response.text)

Send logs to the log stream

After log stream is created, you can start sending logs to the log stream using HTTP POST requests.

import requestsimport json# TODO: Replace the url with your Parseable URL and stream nameurl = "https://<parseable-url>/api/v1/logstream/<stream-name>"payload = json.dumps(    [        {            "id": "434a5f5e-2f5f-11ed-a261-asdasdafgdfd",            "datetime": "24/Jun/2022:14:12:15  0000",            "host": "153.10.110.81",            "user-identifier": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0",            "method": "PUT",            "status": 500,            "referrer": "http://www.google.com/",        }    ])headers = {    # INFO: Use X-P-META-<key>:<value> to add custom metadata to the log event    "X-P-META-Host": "192.168.1.3",    # INFO: Use X-P-TAG-<key>:<value> to add tags to the log event    "X-P-TAG-Language": "python",    # TODO: Replace the basic auth credentials with your Parseable credentials    "Authorization": "Basic YWRtaW46YWRtaW4=",    "Content-Type": "application/json",}response = requests.request("POST", url, headers=headers, data=payload)print(response.text)

Querying a log stream

Once you have started sending logs to a log stream, you can query the logs using standard SQL.

import requestsimport json# TODO: Replace the url with your Parseable URLurl = "https://<parseable-url>/api/v1/query"payload = json.dumps(    {        # TODO: Replace the stream name with your log stream name        "query": "select * from <stream-name>",        # TODO: Replace the time range with your desired time range        "startTime": "2022-09-10T08:20:00+00:00",        "endTime": "2022-09-10T08:20:31+00:00"    })headers = {    # TODO: Replace the basic auth credentials with your Parseable credentials    "Authorization": "Basic YWRtaW46YWRtaW4=",    "Content-Type": "application/json",}response = requests.request("POST", url, headers=headers, data=payload)print(response.text)

Get Updates from Parseable

Subscribe to keep up with latest news, updates and new features on Parseable