Skip to content

Instantly share code, notes, and snippets.

@vladox
Forked from bubenkoff/download_sentry_data.py
Last active April 13, 2024 01:00
Show Gist options
  • Select an option

  • Save vladox/f401db999c5efdf2f25d38683fde2813 to your computer and use it in GitHub Desktop.

Select an option

Save vladox/f401db999c5efdf2f25d38683fde2813 to your computer and use it in GitHub Desktop.
Download all sentry events for a project. Useful for data processing
"""Download sentry data.
usage:
python download_sentry_data.py <org>/<project> <api_key>
"""
import requests
import csv
import sys
if __name__ == '__main__':
with open('data.csv', 'w', encoding='utf-8') as csvfile:
fieldnames = ['culprit', 'count', 'lastSeen', 'logger']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames, extrasaction='ignore')
writer.writeheader()
url = 'https://app.getsentry.com/api/0/projects/{0}/issues/'.format(sys.argv[1])
while True:
response = requests.get(
url,
headers={'Authorization': 'Bearer {TOKEN}'.format(TOKEN=sys.argv[2])}
)
data = response.json()
for event in data:
# tags = {item['key']: item['value'] for item in event['tags']}
writer.writerow(dict(event))
link = response.headers.get('Link')
print("Last event date: {0}".format(data[-1]['lastSeen']))
if link and '"next"' in link:
print("Getting next page...")
url = link.split()[4][1:-2]
else:
break
@vvolodko

vvolodko commented Dec 11, 2019

Copy link
Copy Markdown

It's a pagination issue: the link has results="false".

See https://docs.sentry.io/api/pagination/

@pranith-bm-ai

Copy link
Copy Markdown

ValueError: dictionary update sequence element #0 has length 1; 2 is required

I added a few print statements, turns out I was getting an authorisation error.

https://sentry.io/settings/account/api/auth-tokens/
My auth token did not have the correct scope.

@siiramone

Copy link
Copy Markdown

Hi @vladox, thank you so much for useful script.
I improved paging and added date option and more.
https://gist.github.com/siiramone/0d2ed5fe9a78b4f34f70d60d6a9f80b2

@ssjoyo

ssjoyo commented Oct 21, 2020

Copy link
Copy Markdown

Thank you, this helped.

@juandspy

juandspy commented Mar 7, 2022

Copy link
Copy Markdown

This snippet doesn't deal with pagination. I found that for large number of events (~15000) it only returns (~1500).

@mezotv

mezotv commented Nov 16, 2023

Copy link
Copy Markdown

Does not work anymore

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment