Parseable Docs

Python


Create a dataset

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

import requests

# highlight-start
# TODO: Replace the url with your Parseable URL and stream name
url = "https://<parseable-url>/api/v1/logstream/<stream-name>"
# highlight-end
payload = {}

headers = {
    # highlight-start
    # TODO: Replace the basic auth credentials with your Parseable credentials
    "Authorization": "Basic YWRtaW46YWRtaW4="
    # highlight-end
}

response = requests.request("PUT", url, headers=headers, data=payload)

print(response.text)

Send logs to the dataset

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

import requests
import json

# highlight-start
# TODO: Replace the url with your Parseable URL and stream name
url = "https://<parseable-url>/api/v1/logstream/<stream-name>"
# highlight-end

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 = {
    # highlight-start
    # 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=",
    # highlight-end
    "Content-Type": "application/json",
}

response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)

Querying a dataset

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

import requests
import json

# highlight-start
# TODO: Replace the url with your Parseable URL
url = "https://<parseable-url>/api/v1/query"
# highlight-end

payload = json.dumps(
    {
        # highlight-start
        # TODO: Replace the dataset name with your dataset name
        "query": "select * from <dataset-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"
        # highlight-end
    }
)
headers = {
    # highlight-start
    # TODO: Replace the basic auth credentials with your Parseable credentials
    "Authorization": "Basic YWRtaW46YWRtaW4=",
    # highlight-end
    "Content-Type": "application/json",
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

On this page