-
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SDK Starfish v0 requirements #60
Comments
From the Slack thread we'll also need:
|
We can add all of the db call-level attributes if possible: https://opentelemetry.io/docs/reference/specification/trace/semantic_conventions/database/#call-level-attributes:
I'm still confused about span status - we attach http status codes under |
What is a client timeout here? Presumably if something times out, you never get a response and thus no status code. What do SDKs report in that case? I wouldn't be surprised if a timeout usually translates into some sort of socket error which requires custom handling and might either result in a sentry error (and failed transaction), or is manually handled and the output is undefined. |
Based on a slack thread - here's a snippet from @gggritso about behaviour that he would like to see for timeouts. import urllib
import urllib.request
try:
response = urllib.request.urlopen('http://python.org/', timeout=0.0001)
html = response.read()
except urllib.error.URLError as e:
print("URL Error", e.reason)
if (e.reason == 'timed out'):
span['status'] = 'time out'
raise e |
This adds spans (with `op=cache`) for accessing the Django caches. In the spans the `cache.hit` and `cache.item_size` is set. See getsentry/team-webplatform-meta#60
Given we've released the Python SDK with cache hit information, I think we can say we have enough data for v0 of starfish. action (db operation, http method) is going to be parsed by Relay for the most part (but both Node/Python should be sending them regardless) span status is still an open concern, but I think we can defer that will v1. cc @alexjillard |
So Abhi doesn't have to sign into GH while OOO |
Add cache hit/miss rate
Any call to cache that doesn't return data (null) is treated as a miss. We define a span that has a cache hit as having the span data field
cache.hit
as true. Might require SDK to patch cache abstractions of framework (django).To be done in Python SDK for any frameworks that support this - django is required.
Cache hit/miss rate
db.system
andcache.hit
develop#917cache.hit
data to Django spans sentry-python#2043Add db platform data to to span data
Add this information to span data field as
db.system
, matching OpenTelemetry's well known conventions.For example,
db.system
ofpostgresql
would indicate that it's a postgres database.DB platform data.
db.system
andcache.hit
develop#917db.system
indicators to redis, sqlalchemy, and django sentry-python#2035db.system
span data to DB spans sentry-javascript#7952db.system
constant sentry-python#2037db.system
to redis db spans sentry-python#2038db.system
to sqlalchemy spans sentry-python#2039db.system
sentry-python#2040db.system
to the span data for mongo db. sentry-python#2042Add cache item size
Add a field to
cache
spans that defines how big the item that is being get/set:cache.item_size
. This is an integer and should be in bytes. Blocked by cache hit/miss rate work.Cache Item size
cache.item_size
to span data conventions develop#933Add information used for action field
The action field on the extracted span metrics is either the operation for DB spans (SELECT/DELETE etc.), and http method for HTTP spans (GET/PUT etc.).
For operation, we'll be using and setting
db.operation
on span data. For http method, we'll be usinghttp.method
on span data.If
db.operation
ORhttp.method
is not set on span data, Relay will have to parse it out from the span description.Action
http.method
instead ofmethod
sentry-python#2054http.method
for span data sentry-javascript#7990http.method
to node http spans sentry-javascript#7991The text was updated successfully, but these errors were encountered: