diff --git a/DEVELOPERS.md b/DEVELOPERS.md index e37feb150..f40a64ef5 100644 --- a/DEVELOPERS.md +++ b/DEVELOPERS.md @@ -16,6 +16,7 @@ - [Running the local asset server](#running-the-local-asset-server) - [Compiling assets](#compiling-assets) - [Data Setup](#data-setup) + - [Upgrade OpenTelemetry dependencies](#pip-opentelemetry) - [Deployment](#deployment) - [Testing](#testing) - [Slack Testing](#slack-testing) @@ -257,6 +258,14 @@ In that situation you can follow the steps below to set up your local copy of th If you need one or more Jobs linked to the JobRequest you will need to create them in the database or with the Django shell. +### pip-opentelemetry + +The opentelemetry dependencies need to be upgraded as a group. To do this, bump the relevant versions in `requirements.prod.in` and then attempt to manually resolve the dependencies by upgrading a number of packages simultaneously. A recent example of this is: + +```bash +$ pip-compile --resolver=backtracking --allow-unsafe --generate-hashes --strip-extras --output-file=requirements.prod.txt requirements.prod.in --upgrade-package opentelemetry-instrumentation --upgrade-package opentelemetry-exporter-otlp-proto-http --upgrade-package opentelemetry-sdk --upgrade-package opentelemetry-instrumentation-django --upgrade-package opentelemetry-instrumentation-psycopg2 --upgrade-package opentelemetry-instrumentation-requests --upgrade-package opentelemetry-instrumentation-wsgi --upgrade-package opentelemetry-semantic-conventions --upgrade-package opentelemetry-util-http --upgrade-package opentelemetry-instrumentation-dbapi --upgrade-package opentelemetry-api --upgrade-package opentelemetry-proto --upgrade-package opentelemetry-exporter-otlp-proto-common +``` + ## Deployment diff --git a/requirements.prod.in b/requirements.prod.in index 8b43e198a..d097bb241 100644 --- a/requirements.prod.in +++ b/requirements.prod.in @@ -27,11 +27,11 @@ psycopg[binary] pydantic pygments python-ulid -opentelemetry-exporter-otlp-proto-http -opentelemetry-instrumentation-django -opentelemetry-instrumentation-requests -opentelemetry-instrumentation-psycopg2 -opentelemetry-sdk +opentelemetry-exporter-otlp-proto-http==1.22.0 +opentelemetry-instrumentation-django==0.43b0 +opentelemetry-instrumentation-requests==0.43b0 +opentelemetry-instrumentation-psycopg2==0.43b0 +opentelemetry-sdk==1.22.0 requests sentry-sdk slack-sdk diff --git a/requirements.prod.txt b/requirements.prod.txt index ca6c44685..4d8ec7eca 100644 --- a/requirements.prod.txt +++ b/requirements.prod.txt @@ -629,9 +629,9 @@ oauthlib==3.2.2 \ opensafely-pipeline @ https://github.com/opensafely-core/pipeline/archive/refs/tags/v2023.11.06.145820.zip \ --hash=sha256:cc37eefd337c3cbad92bfbd7bad506d4dab9b661d66bbcf0a911eef6f5dcba56 # via -r requirements.prod.in -opentelemetry-api==1.20.0 \ - --hash=sha256:06abe351db7572f8afdd0fb889ce53f3c992dbf6f6262507b385cc1963e06983 \ - --hash=sha256:982b76036fec0fdaf490ae3dfd9f28c81442a33414f737abc687a32758cdcba5 +opentelemetry-api==1.22.0 \ + --hash=sha256:15ae4ca925ecf9cfdfb7a709250846fbb08072260fca08ade78056c502b86bed \ + --hash=sha256:43621514301a7e9f5d06dd8013a1b450f30c2e9372b8e30aaeb4562abf2ce034 # via # opentelemetry-exporter-otlp-proto-http # opentelemetry-instrumentation @@ -641,67 +641,67 @@ opentelemetry-api==1.20.0 \ # opentelemetry-instrumentation-requests # opentelemetry-instrumentation-wsgi # opentelemetry-sdk -opentelemetry-exporter-otlp-proto-common==1.20.0 \ - --hash=sha256:dd63209b40702636ab6ae76a06b401b646ad7b008a906ecb41222d4af24fbdef \ - --hash=sha256:df60c681bd61812e50b3a39a7a1afeeb6d4066117583249fcc262269374e7a49 +opentelemetry-exporter-otlp-proto-common==1.22.0 \ + --hash=sha256:3f2538bec5312587f8676c332b3747f54c89fe6364803a807e217af4603201fa \ + --hash=sha256:71ae2f81bc6d6fe408d06388826edc8933759b2ca3a97d24054507dc7cfce52d # via opentelemetry-exporter-otlp-proto-http -opentelemetry-exporter-otlp-proto-http==1.20.0 \ - --hash=sha256:03f6e768ad25f1c3a9586e8c695db4a4adf978f8546a1285fa962e16bfbb0bd6 \ - --hash=sha256:500f42821420fdf0759193d6438edc0f4e984a83e14c08a23023c06a188861b4 +opentelemetry-exporter-otlp-proto-http==1.22.0 \ + --hash=sha256:79ed108981ec68d5f7985355bca32003c2f3a5be1534a96d62d5861b758a82f4 \ + --hash=sha256:e002e842190af45b91dc55a97789d0b98e4308c88d886b16049ee90e17a4d396 # via -r requirements.prod.in -opentelemetry-instrumentation==0.41b0 \ - --hash=sha256:0ef9e5705ceca0205992a4a845ae4251ce6ec15a1206ca07c2b00afb0c5bd386 \ - --hash=sha256:214382ba10dfd29d4e24898a4c7ef18b7368178a6277a1aec95cdb75cabf4612 +opentelemetry-instrumentation==0.43b0 \ + --hash=sha256:0ff1334d7e359e27640e9d420024efeb73eacae464309c2e14ede7ba6c93967e \ + --hash=sha256:c3755da6c4be8033be0216d0501e11f4832690f4e2eca5a3576fbf113498f0f6 # via # opentelemetry-instrumentation-dbapi # opentelemetry-instrumentation-django # opentelemetry-instrumentation-psycopg2 # opentelemetry-instrumentation-requests # opentelemetry-instrumentation-wsgi -opentelemetry-instrumentation-dbapi==0.41b0 \ - --hash=sha256:53a3925eb7e8e89cff45fb90a15c5fb520fc75f934dee36f315af24f1bf25701 \ - --hash=sha256:b34cf3d9c3e7dd0a4ca6a75913a8cebe54b5b977464db4371ed00da48f9040e6 +opentelemetry-instrumentation-dbapi==0.43b0 \ + --hash=sha256:1093c97ec1e3fd6a9e44367772d627c7803ecab2c5b397236192855115484ebf \ + --hash=sha256:2c02f0b2f2f3bc28c0afdf1eb42af2c015095f482f2bb179bec9d4b66345efa5 # via opentelemetry-instrumentation-psycopg2 -opentelemetry-instrumentation-django==0.41b0 \ - --hash=sha256:3942e54d0cd5f220ff299b8e84b5fb42c9c43d2a8e0bad2cbb47722147a1bc3d \ - --hash=sha256:96fb8169a7ed1e5cc1a26b00b9c6556af4b5f11ad6ea69df0e3bd76813baa8e3 +opentelemetry-instrumentation-django==0.43b0 \ + --hash=sha256:21d6cf88573b9eb2cc29ec65587d26118ce84a179549cb590cc1ffccf15f8fe6 \ + --hash=sha256:af7934e14764c023003bb5c14eb086c9cdf39fdba16f3ffb611baac920860339 # via -r requirements.prod.in -opentelemetry-instrumentation-psycopg2==0.41b0 \ - --hash=sha256:0d6852e568f7e8750abf4cf49f1cab09dcf6f49ef9b2ab820a091c679d710c2a \ - --hash=sha256:94b511b752fc4d12d4c473cda2218a42248ac3a5a9b3d4ac2d5e247537fa7785 +opentelemetry-instrumentation-psycopg2==0.43b0 \ + --hash=sha256:1c538ebfc001b4f1a4de5f713aeca9a5ba4a0b583369a0fda18dfc416fbab84b \ + --hash=sha256:4fdf8890d81ae89f92a0e361adcb17487f533ec241dee67730f66d1804f83a07 # via -r requirements.prod.in -opentelemetry-instrumentation-requests==0.41b0 \ - --hash=sha256:687fde31111669e729054e64d246c96b0b9d4d8702bd0e3569b7660bdb528d71 \ - --hash=sha256:bdc5515ae7533e620b312fd989941b7c2c92d492a2d4418f6ef8db5d7422fa64 +opentelemetry-instrumentation-requests==0.43b0 \ + --hash=sha256:cd9d0862ab8c8892a207dd828134f23c6a5014756f0f055120412aa00be7732d \ + --hash=sha256:fd92c278d463dbad39cdc42e4f5871de8f66560cf9b40191b554a293aa6faf49 # via -r requirements.prod.in -opentelemetry-instrumentation-wsgi==0.41b0 \ - --hash=sha256:0095834dda60f876c7ed00bc16292b40db86f8cfebdf251417adbd9810993644 \ - --hash=sha256:4c689d59f8e33d2c7a990e475b7934baca554f35684adc346f0882d974c7dc2d +opentelemetry-instrumentation-wsgi==0.43b0 \ + --hash=sha256:0b7511469daa29a6e75b9cc54b4d01a9bb46aa1f964471dc3ee3f06ff39f94b2 \ + --hash=sha256:3a1cf045f7ccf04987a89cdd49eda93e9195de4c8b73be228a9e565ec3ab453c # via opentelemetry-instrumentation-django -opentelemetry-proto==1.20.0 \ - --hash=sha256:512c3d2c6864fb7547a69577c3907348e6c985b7a204533563cb4c4c5046203b \ - --hash=sha256:cf01f49b3072ee57468bccb1a4f93bdb55411f4512d0ac3f97c5c04c0040b5a2 +opentelemetry-proto==1.22.0 \ + --hash=sha256:9ec29169286029f17ca34ec1f3455802ffb90131642d2f545ece9a63e8f69003 \ + --hash=sha256:ce7188d22c75b6d0fe53e7fb58501613d0feade5139538e79dedd9420610fa0c # via # opentelemetry-exporter-otlp-proto-common # opentelemetry-exporter-otlp-proto-http -opentelemetry-sdk==1.20.0 \ - --hash=sha256:702e432a457fa717fd2ddfd30640180e69938f85bb7fec3e479f85f61c1843f8 \ - --hash=sha256:f2230c276ff4c63ea09b3cb2e2ac6b1265f90af64e8d16bbf275c81a9ce8e804 +opentelemetry-sdk==1.22.0 \ + --hash=sha256:45267ac1f38a431fc2eb5d6e0c0d83afc0b78de57ac345488aa58c28c17991d0 \ + --hash=sha256:a730555713d7c8931657612a88a141e3a4fe6eb5523d9e2d5a8b1e673d76efa6 # via # -r requirements.prod.in # opentelemetry-exporter-otlp-proto-http -opentelemetry-semantic-conventions==0.41b0 \ - --hash=sha256:0ce5b040b8a3fc816ea5879a743b3d6fe5db61f6485e4def94c6ee4d402e1eb7 \ - --hash=sha256:45404391ed9e50998183a4925ad1b497c01c143f06500c3b9c3d0013492bb0f2 +opentelemetry-semantic-conventions==0.43b0 \ + --hash=sha256:291284d7c1bf15fdaddf309b3bd6d3b7ce12a253cec6d27144439819a15d8445 \ + --hash=sha256:b9576fb890df479626fa624e88dde42d3d60b8b6c8ae1152ad157a8b97358635 # via # opentelemetry-instrumentation-dbapi # opentelemetry-instrumentation-django # opentelemetry-instrumentation-requests # opentelemetry-instrumentation-wsgi # opentelemetry-sdk -opentelemetry-util-http==0.41b0 \ - --hash=sha256:16d5bd04a380dc1079e766562d1e1626cbb47720f197f67010c45f090fffdfb3 \ - --hash=sha256:6a167fd1e0e8b0f629530d971165b5d82ed0be2154b7f29498499c3a517edee5 +opentelemetry-util-http==0.43b0 \ + --hash=sha256:3ff6ab361dbe99fc81200d625603c0fb890c055c6e416a3e6d661ddf47a6c7f7 \ + --hash=sha256:f25a820784b030f6cb86b3d76e5676c769b75ed3f55a210bcdae0a5e175ebadb # via # opentelemetry-instrumentation-django # opentelemetry-instrumentation-requests