Last active
February 20, 2023 13:33
-
-
Save pridhi-arora/4a97d6403cc8fa582b636d00bdb832a9 to your computer and use it in GitHub Desktop.
opentelemetry Outreachy
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Things to read: | |
grpc: https://grpc.io/docs/what-is-grpc/core-concepts/ | |
https://opentelemetry.io/docs/instrumentation/python/ | |
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.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 ../