trakerr-com / trakerr-python Goto Github PK
View Code? Open in Web Editor NEWTrakerr.IO Python Error Tracking Client
Home Page: https://trakerr.io
License: Apache License 2.0
Trakerr.IO Python Error Tracking Client
Home Page: https://trakerr.io
License: Apache License 2.0
Swagger API has the right code, point default there to avoid changing in multiple places.
Add comments for public exposed interfaces to make it easy for others.
The swagger code is generating two "Generated" libraries. The Trakerr client folder has the generated code and is up to date with any small changes to the swagger code I've had to make. The generated has both the generated code and the generated docs. It has not been updated. For some reason, the swagger code generates to both places (docs only go to generated).
Getting things like the manufacturer and model number are difficult, and platform specific. Take a look at the following links for ways to do it:
http://stackoverflow.com/questions/15501286/get-device-model-information-from-android-via-python
http://stackoverflow.com/a/2462978/2522234
https://pypi.python.org/pypi/WMI/
I already added a dependency to abstract the process and memory os based code from the sdk (The module is cross platform and flexible) so I'm hesitant to continue adding further dependent modules.
Which means writing a bunch of platform specific code anyway. I can't seem to avoid it, considering I have to use WMI on windows and a shell command on linux and android (and probably iOS/mac.) Either way, it seems messy.
Double check the is
keyword is being used for id comparisons and not value.
http://stackoverflow.com/questions/2988017/string-comparison-in-python-is-vs
Change errname to evntname and errmessage to evntmessage.
Create app event defaults to creating a stacktrace. Default instead to False, and then check if the value is True to create a new exec info.
Cut out the absolute URL and use a relative path from the executable. Absolute paths can mess up groups in different install locations.
Code right now does not follow pep style conventions. Follow pylint and change methods to follow general python style and use cases
New fields:
Add current full URL (for browser apps)
Add operation time in millis
Add tags (constructor)
Add application SKU field (constructor)
Add device type and info (iPhone 7) etc. to SDK (automatic defaults)
Add current CPU and memory usage info (automatic defaults)
Add correlation ID (as a new ID to correlate across applications)
If you run the sample app on my PC, you get the error. "WARNING Connection pool is full, discarding connection: www.trakerr.io" A look around says that this is urllib saying it has more connection request than connections. Changing the final call from async to blocking, and removing another connection seems to fix the issue on my PC.
First, I'm running a really old PC, so I want to test this on other PC's to see if my PC simply doesn't have the resources or processor to handle the async calls.
Right now log takes in appSKU and tags per event, but these are things that should be set at a logger level for both efficiency and design wise.
Double Check having them use the enum over string parsing if available.
Calling create_app_event
and get_event_stacktrace
(both use sys.exc_info()
) without a except statement creates a exc_info
tuple with None
'd values. This causes an odd output on the server side.
Adds loglevel, deploymentstage and envLanguage. Changes envName to interpreter name.
Sample app fatal event seems to return unknown(bug), unknown(message) which should be the default of an event without a stacktrace and without a custom event message and name.
StackTrace parsing outputs absolute paths instead of relative paths. This is bad for grouping.
Update readme for refactor 1 (TC constructors) & 2 (deploymentStage & Name).
SendEvent prints a large annoying response to the console.
The class level variables got left out of fill_defaults. Logger code circumvents the process causing no issues if you assign it manually to an event or through log. These should be class level not event level, that's another issue.
OS Version is inconsistent and unhelpful based on the platform. Sometimes the version even ends up in SKU.
For instance, bash on windows (emulates a Microsoft variant of Ubuntu) reports;
OS SKU: Linux 4.4.0-43-Microsoft
OS Version: # 1-Microsoft Wed Dec 31 14:42:53 PST 2014
While Windows itself reports:
OS SKU: Windows 10
OS Version: 10.0.15063
Which is nice and intended.
It looked pretty weird on mac also when I glanced around the office. I'll get a sample output off one of those.
Calling on create_app_event
with a positive generate exception info flag, without the call being from a try except will call the last try/except stack-trace, instead of using the current calling point.
Reduces constructor to fit other languages and keep simple. Create getter and setter for all instance variables.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.