1
0
mirror of https://gitlab.com/psono/psono-server synced 2025-04-18 09:44:01 +03:00

Install opentelemetry conditionally

Signed-off-by: Sascha Pfeiffer <sascha.pfeiffer@esaqa.com>
This commit is contained in:
Sascha Pfeiffer 2024-02-22 13:05:06 +01:00
parent a3d3b24be1
commit bf534d3694
7 changed files with 114 additions and 100 deletions

View File

@ -7,6 +7,9 @@ COPY . /root/
ENV PYTHONUNBUFFERED True
WORKDIR /root
# Buildkit should populate this on build with e.g. "arm64" or "amd64"
ARG TARGETARCH
RUN apk upgrade && \
mkdir -p /root/.pip && \
echo '[global]' >> /root/.pip/pip.conf && \
@ -15,15 +18,16 @@ RUN apk upgrade && \
gettext \
ca-certificates \
curl \
py3-grpcio \
postgresql-dev && \
apk add --virtual .build-deps \
build-base \
libffi-dev \
linux-headers && \
pip3 install --upgrade pip && \
sed -i '/^grpcio==/d' ./requirements.txt && \
pip3 install -r requirements.txt && \
if [ "$TARGETARCH" = "amd64" ]; then \
pip3 install -r requirements-amd64.txt ; \
fi; \
pip3 install uwsgi && \
mkdir -p /root/.psono_server && \
cp /root/configs/mainconfig/settings.yaml /root/.psono_server/settings.yaml && \

View File

@ -23,6 +23,7 @@ RUN mkdir -p /root/.pip && \
python3-psycopg2 \
postgresql-client && \
pip3 install -r requirements.txt && \
pip3 install -r requirements-amd64.txt && \
mkdir -p /root/.psono_server && \
cp /root/configs/mainconfig/settings.yaml /root/.psono_server/settings.yaml && \
sed -i s/YourPostgresDatabase/postgres/g /root/.psono_server/settings.yaml && \

View File

@ -5,7 +5,7 @@ from opentelemetry import trace, baggage, context
from opentelemetry.sdk.resources import Resource
from opentelemetry.semconv.resource import ResourceAttributes
from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter
from opentelemetry.sdk.trace.export import BatchSpanProcessor, ConsoleSpanExporter
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.instrumentation.django import DjangoInstrumentor
from opentelemetry.instrumentation.redis import RedisInstrumentor
from opentelemetry.instrumentation.requests import RequestsInstrumentor

8
requirements-amd64.in Normal file
View File

@ -0,0 +1,8 @@
opentelemetry-sdk==1.22.0
opentelemetry-exporter-otlp-proto-grpc==1.22.0
opentelemetry-instrumentation-wsgi==0.43b0
opentelemetry-instrumentation-django==0.43b0
opentelemetry-instrumentation-requests==0.43b0
opentelemetry-instrumentation-grpc==0.43b0
opentelemetry-instrumentation-redis==0.43b0
opentelemetry-instrumentation-logging==0.43b0

96
requirements-amd64.txt Normal file
View File

@ -0,0 +1,96 @@
#
# This file is autogenerated by pip-compile with Python 3.11
# by the following command:
#
# pip-compile --output-file=requirements-amd64.txt requirements-amd64.in
#
backoff==2.2.1
# via
# opentelemetry-exporter-otlp-proto-common
# opentelemetry-exporter-otlp-proto-grpc
deprecated==1.2.14
# via
# opentelemetry-api
# opentelemetry-exporter-otlp-proto-grpc
googleapis-common-protos==1.62.0
# via opentelemetry-exporter-otlp-proto-grpc
grpcio==1.62.0
# via opentelemetry-exporter-otlp-proto-grpc
importlib-metadata==6.11.0
# via opentelemetry-api
opentelemetry-api==1.22.0
# via
# opentelemetry-exporter-otlp-proto-grpc
# opentelemetry-instrumentation
# opentelemetry-instrumentation-django
# opentelemetry-instrumentation-grpc
# opentelemetry-instrumentation-logging
# opentelemetry-instrumentation-redis
# opentelemetry-instrumentation-requests
# opentelemetry-instrumentation-wsgi
# opentelemetry-sdk
opentelemetry-exporter-otlp-proto-common==1.22.0
# via opentelemetry-exporter-otlp-proto-grpc
opentelemetry-exporter-otlp-proto-grpc==1.22.0
# via -r requirements-amd64.in
opentelemetry-instrumentation==0.43b0
# via
# opentelemetry-instrumentation-django
# opentelemetry-instrumentation-grpc
# opentelemetry-instrumentation-logging
# opentelemetry-instrumentation-redis
# opentelemetry-instrumentation-requests
# opentelemetry-instrumentation-wsgi
opentelemetry-instrumentation-django==0.43b0
# via -r requirements-amd64.in
opentelemetry-instrumentation-grpc==0.43b0
# via -r requirements-amd64.in
opentelemetry-instrumentation-logging==0.43b0
# via -r requirements-amd64.in
opentelemetry-instrumentation-redis==0.43b0
# via -r requirements-amd64.in
opentelemetry-instrumentation-requests==0.43b0
# via -r requirements-amd64.in
opentelemetry-instrumentation-wsgi==0.43b0
# via
# -r requirements-amd64.in
# opentelemetry-instrumentation-django
opentelemetry-proto==1.22.0
# via
# opentelemetry-exporter-otlp-proto-common
# opentelemetry-exporter-otlp-proto-grpc
opentelemetry-sdk==1.22.0
# via
# -r requirements-amd64.in
# opentelemetry-exporter-otlp-proto-grpc
# opentelemetry-instrumentation-grpc
opentelemetry-semantic-conventions==0.43b0
# via
# opentelemetry-instrumentation-django
# opentelemetry-instrumentation-grpc
# opentelemetry-instrumentation-redis
# opentelemetry-instrumentation-requests
# opentelemetry-instrumentation-wsgi
# opentelemetry-sdk
opentelemetry-util-http==0.43b0
# via
# opentelemetry-instrumentation-django
# opentelemetry-instrumentation-requests
# opentelemetry-instrumentation-wsgi
protobuf==4.25.3
# via
# googleapis-common-protos
# opentelemetry-proto
typing-extensions==4.9.0
# via opentelemetry-sdk
wrapt==1.16.0
# via
# deprecated
# opentelemetry-instrumentation
# opentelemetry-instrumentation-grpc
# opentelemetry-instrumentation-redis
zipp==3.17.0
# via importlib-metadata
# The following packages are considered to be unsafe in a requirements file:
# setuptools

View File

@ -28,12 +28,4 @@ dj-database-url==2.1.0
toml==0.10.2
azure-storage-blob==12.13.0
webauthn==1.8.1
tzdata==2023.4
opentelemetry-sdk==1.22.0
opentelemetry-exporter-otlp-proto-grpc==1.22.0
opentelemetry-instrumentation-wsgi==0.43b0
opentelemetry-instrumentation-django==0.43b0
opentelemetry-instrumentation-requests==0.43b0
opentelemetry-instrumentation-grpc==0.43b0
opentelemetry-instrumentation-redis==0.43b0
opentelemetry-instrumentation-logging==0.43b0
tzdata==2023.4

View File

@ -1,5 +1,5 @@
#
# This file is autogenerated by pip-compile with Python 3.10
# This file is autogenerated by pip-compile with Python 3.11
# by the following command:
#
# pip-compile --output-file=requirements.txt requirements.in
@ -14,10 +14,6 @@ azure-core==1.24.2
# via azure-storage-blob
azure-storage-blob==12.13.0
# via -r requirements.in
backoff==2.2.1
# via
# opentelemetry-exporter-otlp-proto-common
# opentelemetry-exporter-otlp-proto-grpc
bcrypt==3.2.2
# via -r requirements.in
boto3==1.34.39
@ -48,10 +44,6 @@ cryptography==42.0.2
# webauthn
defusedxml==0.6.0
# via python3-openid
deprecated==1.2.14
# via
# opentelemetry-api
# opentelemetry-exporter-otlp-proto-grpc
dj-database-url==2.1.0
# via -r requirements.in
django==4.2.10
@ -86,14 +78,8 @@ djangorestframework==3.14.0
# django-rest-auth
duo-client==4.2.3
# via -r requirements.in
googleapis-common-protos==1.62.0
# via opentelemetry-exporter-otlp-proto-grpc
grpcio==1.60.1
# via opentelemetry-exporter-otlp-proto-grpc
idna==3.3
# via requests
importlib-metadata==6.11.0
# via opentelemetry-api
isodate==0.6.1
# via msrest
jmespath==0.9.5
@ -110,69 +96,6 @@ ntplib==0.3.4
# via -r requirements.in
oauthlib==3.1.0
# via requests-oauthlib
opentelemetry-api==1.22.0
# via
# opentelemetry-exporter-otlp-proto-grpc
# opentelemetry-instrumentation
# opentelemetry-instrumentation-django
# opentelemetry-instrumentation-grpc
# opentelemetry-instrumentation-logging
# opentelemetry-instrumentation-redis
# opentelemetry-instrumentation-requests
# opentelemetry-instrumentation-wsgi
# opentelemetry-sdk
opentelemetry-exporter-otlp-proto-common==1.22.0
# via opentelemetry-exporter-otlp-proto-grpc
opentelemetry-exporter-otlp-proto-grpc==1.22.0
# via -r requirements.in
opentelemetry-instrumentation==0.43b0
# via
# opentelemetry-instrumentation-django
# opentelemetry-instrumentation-grpc
# opentelemetry-instrumentation-logging
# opentelemetry-instrumentation-redis
# opentelemetry-instrumentation-requests
# opentelemetry-instrumentation-wsgi
opentelemetry-instrumentation-django==0.43b0
# via -r requirements.in
opentelemetry-instrumentation-grpc==0.43b0
# via -r requirements.in
opentelemetry-instrumentation-logging==0.43b0
# via -r requirements.in
opentelemetry-instrumentation-redis==0.43b0
# via -r requirements.in
opentelemetry-instrumentation-requests==0.43b0
# via -r requirements.in
opentelemetry-instrumentation-wsgi==0.43b0
# via
# -r requirements.in
# opentelemetry-instrumentation-django
opentelemetry-proto==1.22.0
# via
# opentelemetry-exporter-otlp-proto-common
# opentelemetry-exporter-otlp-proto-grpc
opentelemetry-sdk==1.22.0
# via
# -r requirements.in
# opentelemetry-exporter-otlp-proto-grpc
# opentelemetry-instrumentation-grpc
opentelemetry-semantic-conventions==0.43b0
# via
# opentelemetry-instrumentation-django
# opentelemetry-instrumentation-grpc
# opentelemetry-instrumentation-redis
# opentelemetry-instrumentation-requests
# opentelemetry-instrumentation-wsgi
# opentelemetry-sdk
opentelemetry-util-http==0.43b0
# via
# opentelemetry-instrumentation-django
# opentelemetry-instrumentation-requests
# opentelemetry-instrumentation-wsgi
protobuf==4.25.3
# via
# googleapis-common-protos
# opentelemetry-proto
psycopg[binary]==3.1.18
# via -r requirements.in
psycopg-binary==3.1.18
@ -237,10 +160,8 @@ toml==0.10.2
# via -r requirements.in
typing-extensions==4.3.0
# via
# asgiref
# azure-core
# dj-database-url
# opentelemetry-sdk
# psycopg
# pydantic
tzdata==2023.4
@ -251,16 +172,8 @@ urllib3==1.26.18
# requests
webauthn==1.8.1
# via -r requirements.in
wrapt==1.16.0
# via
# deprecated
# opentelemetry-instrumentation
# opentelemetry-instrumentation-grpc
# opentelemetry-instrumentation-redis
yubico-client==1.12.0
# via -r requirements.in
zipp==3.17.0
# via importlib-metadata
# The following packages are considered to be unsafe in a requirements file:
# setuptools