Skip to content

Commit 02236ca

Browse files
authored
Upgrade OpenTelemetry to v1.11.0 and gRPC to v1.57.0 (#10352)
* Upgrade OpenTelemetry to v1.11.0 and gRPC to v1.57 * upgrade module
1 parent c3a28ab commit 02236ca

File tree

3 files changed

+67
-30
lines changed

3 files changed

+67
-30
lines changed

images/opentelemetry/rootfs/CMakeLists.txt

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ set(CMAKE_CXX_STANDARD 17)
2525
set(CMAKE_CXX_EXTENSIONS OFF)
2626
set(CMAKE_CXX_STANDARD_REQUIRED ON)
2727
set(CMAKE_CXX_FLAGS "-O2")
28+
set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "ON" FORCE)
2829

2930
set(CMAKE_BUILD_TYPE
3031
Release
@@ -82,12 +83,18 @@ ExternalProject_Add(
8283
-DgRPC_BUILD_TESTS=OFF
8384
-DBUILD_SHARED_LIBS=OFF
8485
-DgRPC_INSTALL=ON
86+
-DgRPC_BUILD_GRPC_NODE_PLUGIN=OFF
87+
-DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=OFF
88+
-DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF
89+
-DgRPC_BUILD_GRPC_PYTHON_PLUGIN=OFF
90+
-DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF
8591
CMAKE_CACHE_ARGS -DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS}
86-
TEST_AFTER_INSTALL 0
87-
DOWNLOAD_NO_PROGRESS 1
88-
LOG_CONFIGURE 1
89-
LOG_BUILD 0
90-
LOG_INSTALL 1)
92+
TEST_AFTER_INSTALL FALSE
93+
USES_TERMINAL_BUILD TRUE
94+
DOWNLOAD_NO_PROGRESS TRUE
95+
LOG_CONFIGURE TRUE
96+
LOG_BUILD TRUE
97+
LOG_INSTALL TRUE)
9198

9299
install(
93100
DIRECTORY ${STAGED_INSTALL_PREFIX}/

images/opentelemetry/rootfs/Dockerfile

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,24 @@ COPY . /opt/third_party/
2121
# install build tools
2222
RUN apk update \
2323
&& apk upgrade \
24-
&& apk add -U bash cmake ninja \
24+
&& apk add -U bash \
2525
&& bash /opt/third_party/build.sh -p
2626

27-
ENV NINJA_STATUS "[%p/%f/%t]"
27+
ENV NINJA_STATUS "[%p/%f/%t] "
2828

2929
# install gRPC
3030
FROM base as grpc
31-
RUN bash /opt/third_party/build.sh -g v1.49.2
31+
RUN bash /opt/third_party/build.sh -g v1.57.0
32+
33+
# install abseil-cpp
34+
FROM base as absl-cpp
35+
RUN bash /opt/third_party/build.sh -a 20230802.0
3236

3337
# install OpenTelemetry-cpp
3438
FROM base as otel-cpp
3539
COPY --from=grpc /opt/third_party/install/ /usr
36-
RUN bash /opt/third_party/build.sh -o v1.8.1
40+
COPY --from=absl-cpp /opt/third_party/install/ /usr
41+
RUN bash /opt/third_party/build.sh -o v1.11.0
3742

3843
# install otel_ngx_module.so
3944
FROM base as nginx
@@ -52,6 +57,5 @@ RUN CGO_ENABLED=0 go build -o /go/bin/init_module
5257
FROM cgr.dev/chainguard/static as final
5358
COPY --from=build-init /go/bin/init_module /
5459
COPY --from=nginx /etc/nginx/modules /etc/nginx/modules
55-
COPY --from=nginx /opt/third_party/install/lib /etc/nginx/modules
5660

5761
CMD ["/init_module"]

images/opentelemetry/rootfs/build.sh

Lines changed: 46 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ set -o pipefail
2121
export GRPC_GIT_TAG=${GRPC_GIT_TAG:="v1.43.2"}
2222
# Check for recent changes: https://github.com/open-telemetry/opentelemetry-cpp/compare/v1.2.0...main
2323
export OPENTELEMETRY_CPP_VERSION=${OPENTELEMETRY_CPP_VERSION:="1.2.0"}
24+
export ABSL_CPP_VERSION=${ABSL_CPP_VERSION:="20230802.0"}
2425
export INSTAL_DIR=/opt/third_party/install
2526
# improve compilation times
2627
CORES=$(($(grep -c ^processor /proc/cpuinfo) - 1))
@@ -54,6 +55,8 @@ prepare()
5455
{
5556
apk add \
5657
linux-headers \
58+
cmake \
59+
ninja \
5760
openssl \
5861
curl-dev \
5962
openssl-dev \
@@ -71,14 +74,32 @@ install_grpc()
7174
cd ${BUILD_PATH}/grpc
7275
cmake -DCMAKE_INSTALL_PREFIX=${INSTAL_DIR} \
7376
-G Ninja \
74-
-DGRPC_GIT_TAG=${GRPC_GIT_TAG} /opt/third_party \
75-
-DgRPC_BUILD_GRPC_NODE_PLUGIN=OFF \
76-
-DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=OFF \
77-
-DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF \
78-
-DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF \
79-
-DgRPC_BUILD_GRPC_PYTHON_PLUGIN=OFF \
80-
-DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF
81-
cmake --build . -j ${CORES} --target all install
77+
-DGRPC_GIT_TAG=${GRPC_GIT_TAG} /opt/third_party
78+
79+
cmake --build . -j ${CORES} --target all install --verbose
80+
}
81+
82+
install_absl()
83+
{
84+
cd ${BUILD_PATH}
85+
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+LD_LIBRARY_PATH:}${INSTAL_DIR}/lib:/usr/local"
86+
export PATH="${PATH}:${INSTAL_DIR}/bin"
87+
git clone --recurse-submodules -j ${CORES} --depth=1 -b \
88+
${ABSL_CPP_VERSION} https://github.com/abseil/abseil-cpp.git abseil-cpp-${ABSL_CPP_VERSION}
89+
cd "abseil-cpp-${ABSL_CPP_VERSION}"
90+
mkdir -p .build
91+
cd .build
92+
93+
cmake -DCMAKE_BUILD_TYPE=Release \
94+
-G Ninja \
95+
-DCMAKE_CXX_STANDARD=17 \
96+
-DCMAKE_POSITION_INDEPENDENT_CODE=TRUE \
97+
-DBUILD_TESTING=OFF \
98+
-DCMAKE_INSTALL_PREFIX=${INSTAL_DIR} \
99+
-DABSL_PROPAGATE_CXX_STD=ON \
100+
-DBUILD_SHARED_LIBS=OFF \
101+
..
102+
cmake --build . -j ${CORES} --target install
82103
}
83104

84105
install_otel()
@@ -94,17 +115,19 @@ install_otel()
94115

95116
cmake -DCMAKE_BUILD_TYPE=Release \
96117
-G Ninja \
118+
-DCMAKE_CXX_STANDARD=17 \
97119
-DCMAKE_POSITION_INDEPENDENT_CODE=TRUE \
98120
-DWITH_ZIPKIN=OFF \
99-
-DWITH_JAEGER=OFF \
100121
-DCMAKE_INSTALL_PREFIX=${INSTAL_DIR} \
101122
-DBUILD_TESTING=OFF \
123+
-DWITH_BENCHMARK=OFF \
124+
-DWITH_FUNC_TESTS=OFF \
102125
-DBUILD_SHARED_LIBS=OFF \
103-
-DWITH_OTLP=ON \
104126
-DWITH_OTLP_GRPC=ON \
105127
-DWITH_OTLP_HTTP=OFF \
106-
-DWITH_ABSEIL=OFF \
128+
-DWITH_ABSEIL=ON \
107129
-DWITH_EXAMPLES=OFF \
130+
-DWITH_NO_DEPRECATED_CODE=ON \
108131
..
109132
cmake --build . -j ${CORES} --target install
110133
}
@@ -128,7 +151,7 @@ install_nginx()
128151
export NGINX_VERSION=1.21.6
129152

130153
# Check for recent changes: https://github.com/open-telemetry/opentelemetry-cpp-contrib/compare/2656a4...main
131-
export OPENTELEMETRY_CONTRIB_COMMIT=1ec94c82095bab61f06c7393b6f3272469d285af
154+
export OPENTELEMETRY_CONTRIB_COMMIT=aaa51e2297bcb34297f3c7aa44fa790497d2f7f3
132155

133156
mkdir -p /etc/nginx
134157
cd "$BUILD_PATH"
@@ -145,20 +168,19 @@ install_nginx()
145168
mkdir -p build
146169
cd build
147170
cmake -DCMAKE_BUILD_TYPE=Release \
148-
-G Ninja \
149-
-DCMAKE_INSTALL_PREFIX=${INSTAL_DIR} \
150-
-DBUILD_SHARED_LIBS=ON \
151-
-DNGINX_VERSION=${NGINX_VERSION} \
152-
..
171+
-G Ninja \
172+
-DCMAKE_CXX_STANDARD=17 \
173+
-DCMAKE_INSTALL_PREFIX=${INSTAL_DIR} \
174+
-DBUILD_SHARED_LIBS=ON \
175+
-DNGINX_VERSION=${NGINX_VERSION} \
176+
..
153177
cmake --build . -j ${CORES} --target install
154178

155179
mkdir -p /etc/nginx/modules
156180
cp ${INSTAL_DIR}/otel_ngx_module.so /etc/nginx/modules/otel_ngx_module.so
157-
158-
mkdir -p ${INSTAL_DIR}/lib
159181
}
160182

161-
while getopts ":hpng:o:" option; do
183+
while getopts ":pha:g:o:n" option; do
162184
case $option in
163185
h) # display Help
164186
Help
@@ -177,6 +199,10 @@ while getopts ":hpng:o:" option; do
177199
n) # install nginx
178200
install_nginx
179201
exit;;
202+
a) # install abseil
203+
ABSL_CPP_VERSION=${OPTARG}
204+
install_absl
205+
exit;;
180206
\?)
181207
Help
182208
exit;;

0 commit comments

Comments
 (0)