-
-
Save pridhi-arora/4a97d6403cc8fa582b636d00bdb832a9 to your computer and use it in GitHub Desktop.
Things to read: | |
grpc: https://grpc.io/docs/what-is-grpc/core-concepts/ | |
https://opentelemetry.io/docs/instrumentation/python/ | |
Creating a virtual environment
python -m venv <directory>
python3 -m venv otel_env
Activate/sourcing the virtual environment
source otel_env/bin/activate
make sure you are creating this environment inside of the project you are working on.
cd opentelemetry-python
the above environment was created in open telemetry python.
ls
in opentelemetry-python, there is dev_requirements.txt
cat dev_requirements.txt
to view the requirements
make sure your virtual env is activated then install the requirements using this pip command
pip install -r dev_requirements.txt
To check the installed requirements use pip freeze
command
write command deactivate
to deactivate the python virtual env
Clone project:
Goto PR
click <>code
on left
click <>code
on right
clone SSH
Goto terminal : git clone 'copied SSH'
would reformat otel_env/lib64/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/etree.py
Oh no! 💥 💔 💥
4 files would be reformatted, 13931 files would be left unchanged.
Traceback (most recent call last):
File "/home/pridhi/opentelemetry-python/scripts/eachdist.py", line 675, in <module>
main()
File "/home/pridhi/opentelemetry-python/scripts/eachdist.py", line 671, in main
args.func(args)
File "/home/pridhi/opentelemetry-python/scripts/eachdist.py", line 518, in lint_args
runsubprocess(
File "/home/pridhi/opentelemetry-python/scripts/eachdist.py", line 388, in runsubprocess
return subprocess_run(params, *args, check=check, **kwargs)
File "/usr/lib/python3.9/subprocess.py", line 528, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['/home/pridhi/opentelemetry-python/.tox/lint/bin/black', '--config', 'pyproject.toml', '.', '--diff', '--check']' returned non-zero exit status 1.
ERROR: InvocationError for command /home/pridhi/opentelemetry-python/.tox/lint/bin/python scripts/eachdist.py lint --check-only (exited with code 1)
_________________________________________________________________________________________________ summary _________________________________________________________________________________________________
ERROR: lint: commands failed
Faced some issues in otel_env, so created a new environment and deleted the existing one by using the command rm -rf otel_env
.
issue was
ImportError: cannot import name '__diag__' from partially initialized module 'pip._vendor.pyparsing' (most likely due to a circular import) (/home/pridhi/opentelemetry-python/otel_env/lib/python3.9/site-packages/pip/_vendor/pyparsing/__init__.py)
Created a new otel_env, now I ran black . , it was reformatting the otel_env also so we moved the environment to the previous directory by using the command
mv otel_env ../
Lint errors were not getting fixed. For some reason, the main branch was failing with specific lint errors which were not being reflected on CI.
************* Module opentelemetry-sdk.src.opentelemetry.sdk.metrics._internal.aggregation
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/aggregation.py:19:0: E0611: No name 'inf' in module 'math' (no-name-in-module)
************* Module opentelemetry-sdk.src.opentelemetry.sdk.metrics._internal.exponential_histogram.mapping.exponent_mapping
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/exponential_histogram/mapping/exponent_mapping.py:15:0: E0611: No name 'ldexp' in module 'math' (no-name-in-module)
************* Module opentelemetry-sdk.src.opentelemetry.sdk.metrics._internal.exponential_histogram.mapping.logarithm_mapping
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/exponential_histogram/mapping/logarithm_mapping.py:15:0: E0611: No name 'exp' in module 'math' (no-name-in-module)
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/exponential_histogram/mapping/logarithm_mapping.py:15:0: E0611: No name 'floor' in module 'math' (no-name-in-module)
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/exponential_histogram/mapping/logarithm_mapping.py:15:0: E0611: No name 'ldexp' in module 'math' (no-name-in-module)
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/exponential_histogram/mapping/logarithm_mapping.py:15:0: E0611: No name 'log' in module 'math' (no-name-in-module)
************* Module exporter.opentelemetry-exporter-jaeger-thrift.src.opentelemetry.exporter.jaeger.thrift.send
exporter/opentelemetry-exporter-jaeger-thrift/src/opentelemetry/exporter/jaeger/thrift/send.py:74:26: I1101: Module 'math' has no 'ceil' member, but source is unavailable. Consider adding this module to extension-pkg-allow-list if you want to perform analysis based on run-time introspection of living objects. (c-extension-no-member)
exporter/opentelemetry-exporter-jaeger-thrift/src/opentelemetry/exporter/jaeger/thrift/send.py:75:22: I1101: Module 'math' has no 'ceil' member, but source is unavailable. Consider adding this module to extension-pkg-allow-list if you want to perform analysis based on run-time introspection of living objects. (c-extension-no-member)
exporter/opentelemetry-exporter-jaeger-thrift/src/opentelemetry/exporter/jaeger/thrift/send.py:94:27: E1101: Module 'socket' has no 'AF_INET' member (no-member)
exporter/opentelemetry-exporter-jaeger-thrift/src/opentelemetry/exporter/jaeger/thrift/send.py:94:43: E1101: Module 'socket' has no 'SOCK_DGRAM' member (no-member)
I tried to set up and get tracing telemetry from an HTTP server with Flask. For this, I installed flask and opentelemetry-distro package after this created the HTTP server with the /rolldice route. The code for the same is
from random import randint
from flask import Flask, request
app = Flask(__name__)
@app.route("/rolldice")
def roll_dice():
return str(do_roll())
def do_roll():
return randint(1, 6)
But I failed to run this. So, I added the following lines to the end of code
if __name__ == " __main__ " :
app.run()
After this, I installed flask instrumentation
opentelemetry-bootstrap -a install
For running the instrumented app :
opentelemetry-instrument \
--traces_exporter console \
--metrics_exporter console \
flask run
After sending a request to the server we now get a trace with a span in the console.
typed-ast error, switch to python 3.9 for all the errors.
Also, use tox from the development version.
In typo
[ PR](https://github.com/open-telemetry/opentelemetry-python/pull/3009)
tox tests were failing. From logs of CI i.e the tests on github. Say it as CI tests are failing. The set of tests in Github pull request is called as a pipeline.One of tox tests were failing.
Looking at the CI, we observed that tox command is failing ( tox -f py37-instrumentation)
We tried running this in local.
we are getting