浏览代码

HUE-8936 [design] Adding high level goal of tracing framework

Romain 6 年之前
父节点
当前提交
e7ef4d45c9
共有 1 个文件被更改,包括 37 次插入0 次删除
  1. 37 0
      docs/designs/tracing.md

+ 37 - 0
docs/designs/tracing.md

@@ -0,0 +1,37 @@
+
+# Open Tracing
+
+Goal: understanding of where exactly the time is being spent when executing queries (e.g. in Hue database, in interpreter, RPC call to warehouse...)
+
+* https://github.com/opentracing-contrib/python-django
+* https://medium.com/jaegertracing/grafana-labs-teams-observed-query-performance-improvements-up-to-10x-with-jaeger-cec84b0e3609
+* https://github.com/census-instrumentation/opencensus-python
+
+# Hue
+
+Track:
+
+* REST RPC
+* Thrift RPC
+* Celery tasks
+* DB
+
+Would need to inject:
+
+## All the time
+
+* user id
+* operation ID (auto: trace id)
+
+## SQL
+
+When starting a new query or sessions:
+
+* session id
+* query id
+
+and propagating by adding them to check_status, fetch_result, close_statement, close_sessions.
+
+Notes:
+* not forwarding trace id span among query Hue API calls to see a "full query trace": manually filtering by query id instead
+* Ideally: distributed query tracing done with other components (Hive, Impala, HDFS...).