Skip to content

Commit

Permalink
Upgrade OpenTelemetry to v1.11.0 and gRPC to v1.57.0 (#10352)
Browse files Browse the repository at this point in the history
* Upgrade OpenTelemetry to v1.11.0 and gRPC to v1.57

* upgrade module
  • Loading branch information
esigo authored Sep 3, 2023
1 parent c3a28ab commit 02236ca
Show file tree
Hide file tree
Showing 3 changed files with 67 additions and 30 deletions.
17 changes: 12 additions & 5 deletions images/opentelemetry/rootfs/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_FLAGS "-O2")
set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "ON" FORCE)

set(CMAKE_BUILD_TYPE
Release
Expand Down Expand Up @@ -82,12 +83,18 @@ ExternalProject_Add(
-DgRPC_BUILD_TESTS=OFF
-DBUILD_SHARED_LIBS=OFF
-DgRPC_INSTALL=ON
-DgRPC_BUILD_GRPC_NODE_PLUGIN=OFF
-DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=OFF
-DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF
-DgRPC_BUILD_GRPC_PYTHON_PLUGIN=OFF
-DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF
CMAKE_CACHE_ARGS -DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS}
TEST_AFTER_INSTALL 0
DOWNLOAD_NO_PROGRESS 1
LOG_CONFIGURE 1
LOG_BUILD 0
LOG_INSTALL 1)
TEST_AFTER_INSTALL FALSE
USES_TERMINAL_BUILD TRUE
DOWNLOAD_NO_PROGRESS TRUE
LOG_CONFIGURE TRUE
LOG_BUILD TRUE
LOG_INSTALL TRUE)

install(
DIRECTORY ${STAGED_INSTALL_PREFIX}/
Expand Down
14 changes: 9 additions & 5 deletions images/opentelemetry/rootfs/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -21,19 +21,24 @@ COPY . /opt/third_party/
# install build tools
RUN apk update \
&& apk upgrade \
&& apk add -U bash cmake ninja \
&& apk add -U bash \
&& bash /opt/third_party/build.sh -p

ENV NINJA_STATUS "[%p/%f/%t]"
ENV NINJA_STATUS "[%p/%f/%t] "

# install gRPC
FROM base as grpc
RUN bash /opt/third_party/build.sh -g v1.49.2
RUN bash /opt/third_party/build.sh -g v1.57.0

# install abseil-cpp
FROM base as absl-cpp
RUN bash /opt/third_party/build.sh -a 20230802.0

# install OpenTelemetry-cpp
FROM base as otel-cpp
COPY --from=grpc /opt/third_party/install/ /usr
RUN bash /opt/third_party/build.sh -o v1.8.1
COPY --from=absl-cpp /opt/third_party/install/ /usr
RUN bash /opt/third_party/build.sh -o v1.11.0

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

CMD ["/init_module"]
66 changes: 46 additions & 20 deletions images/opentelemetry/rootfs/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ set -o pipefail
export GRPC_GIT_TAG=${GRPC_GIT_TAG:="v1.43.2"}
# Check for recent changes: https://github.com/open-telemetry/opentelemetry-cpp/compare/v1.2.0...main
export OPENTELEMETRY_CPP_VERSION=${OPENTELEMETRY_CPP_VERSION:="1.2.0"}
export ABSL_CPP_VERSION=${ABSL_CPP_VERSION:="20230802.0"}
export INSTAL_DIR=/opt/third_party/install
# improve compilation times
CORES=$(($(grep -c ^processor /proc/cpuinfo) - 1))
Expand Down Expand Up @@ -54,6 +55,8 @@ prepare()
{
apk add \
linux-headers \
cmake \
ninja \
openssl \
curl-dev \
openssl-dev \
Expand All @@ -71,14 +74,32 @@ install_grpc()
cd ${BUILD_PATH}/grpc
cmake -DCMAKE_INSTALL_PREFIX=${INSTAL_DIR} \
-G Ninja \
-DGRPC_GIT_TAG=${GRPC_GIT_TAG} /opt/third_party \
-DgRPC_BUILD_GRPC_NODE_PLUGIN=OFF \
-DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=OFF \
-DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF \
-DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF \
-DgRPC_BUILD_GRPC_PYTHON_PLUGIN=OFF \
-DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF
cmake --build . -j ${CORES} --target all install
-DGRPC_GIT_TAG=${GRPC_GIT_TAG} /opt/third_party

cmake --build . -j ${CORES} --target all install --verbose
}

install_absl()
{
cd ${BUILD_PATH}
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+LD_LIBRARY_PATH:}${INSTAL_DIR}/lib:/usr/local"
export PATH="${PATH}:${INSTAL_DIR}/bin"
git clone --recurse-submodules -j ${CORES} --depth=1 -b \
${ABSL_CPP_VERSION} https://github.com/abseil/abseil-cpp.git abseil-cpp-${ABSL_CPP_VERSION}
cd "abseil-cpp-${ABSL_CPP_VERSION}"
mkdir -p .build
cd .build

cmake -DCMAKE_BUILD_TYPE=Release \
-G Ninja \
-DCMAKE_CXX_STANDARD=17 \
-DCMAKE_POSITION_INDEPENDENT_CODE=TRUE \
-DBUILD_TESTING=OFF \
-DCMAKE_INSTALL_PREFIX=${INSTAL_DIR} \
-DABSL_PROPAGATE_CXX_STD=ON \
-DBUILD_SHARED_LIBS=OFF \
..
cmake --build . -j ${CORES} --target install
}

install_otel()
Expand All @@ -94,17 +115,19 @@ install_otel()

cmake -DCMAKE_BUILD_TYPE=Release \
-G Ninja \
-DCMAKE_CXX_STANDARD=17 \
-DCMAKE_POSITION_INDEPENDENT_CODE=TRUE \
-DWITH_ZIPKIN=OFF \
-DWITH_JAEGER=OFF \
-DCMAKE_INSTALL_PREFIX=${INSTAL_DIR} \
-DBUILD_TESTING=OFF \
-DWITH_BENCHMARK=OFF \
-DWITH_FUNC_TESTS=OFF \
-DBUILD_SHARED_LIBS=OFF \
-DWITH_OTLP=ON \
-DWITH_OTLP_GRPC=ON \
-DWITH_OTLP_HTTP=OFF \
-DWITH_ABSEIL=OFF \
-DWITH_ABSEIL=ON \
-DWITH_EXAMPLES=OFF \
-DWITH_NO_DEPRECATED_CODE=ON \
..
cmake --build . -j ${CORES} --target install
}
Expand All @@ -128,7 +151,7 @@ install_nginx()
export NGINX_VERSION=1.21.6

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

mkdir -p /etc/nginx
cd "$BUILD_PATH"
Expand All @@ -145,20 +168,19 @@ install_nginx()
mkdir -p build
cd build
cmake -DCMAKE_BUILD_TYPE=Release \
-G Ninja \
-DCMAKE_INSTALL_PREFIX=${INSTAL_DIR} \
-DBUILD_SHARED_LIBS=ON \
-DNGINX_VERSION=${NGINX_VERSION} \
..
-G Ninja \
-DCMAKE_CXX_STANDARD=17 \
-DCMAKE_INSTALL_PREFIX=${INSTAL_DIR} \
-DBUILD_SHARED_LIBS=ON \
-DNGINX_VERSION=${NGINX_VERSION} \
..
cmake --build . -j ${CORES} --target install

mkdir -p /etc/nginx/modules
cp ${INSTAL_DIR}/otel_ngx_module.so /etc/nginx/modules/otel_ngx_module.so

mkdir -p ${INSTAL_DIR}/lib
}

while getopts ":hpng:o:" option; do
while getopts ":pha:g:o:n" option; do
case $option in
h) # display Help
Help
Expand All @@ -177,6 +199,10 @@ while getopts ":hpng:o:" option; do
n) # install nginx
install_nginx
exit;;
a) # install abseil
ABSL_CPP_VERSION=${OPTARG}
install_absl
exit;;
\?)
Help
exit;;
Expand Down

0 comments on commit 02236ca

Please sign in to comment.