Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 9 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,7 @@ find_package(Gperftools)
find_package(Doxygen)

if (OPENSSL_FOUND)
list(GET OPENSSL_LIBRARIES 0 openssl_libname)
get_filename_component(OPENSSL_LIBRARY_DIR ${openssl_libname} DIRECTORY)
get_filename_component(OPENSSL_ROOT_DIR ${OPENSSL_LIBRARY_DIR} DIRECTORY)
get_filename_component(OPENSSL_ROOT_DIR ${OPENSSL_INCLUDE_DIR} DIRECTORY)

if (APPLE)
set (WITH_OPENSSL "--with-openssl=${OPENSSL_ROOT_DIR}")
Expand Down Expand Up @@ -106,13 +104,20 @@ else ()
set (BUILD_DOCS OFF)
endif ()

if (GBENCH_FOUND AND RELEASE_BUILD)
set (BUILD_BENCH ON)
else ()
set (BUILD_BENCH OFF)
endif ()

option (WITH_CURL "Build with cURL propagation" WITH_CURL)
option (WITH_GRPC "Build with gRPC propagation" WITH_GRPC)
option (WITH_FPIC "Build with -fPIC for shared library" OFF)
option (WITH_TCMALLOC "Build with tcmalloc library" WITH_TCMALLOC)
option (WITH_PROFILER "Build with CPU profiler" WITH_PROFILER)
option (SHARED_LIB "Build shared library" OFF)
option (BUILD_DOCS "Build API documentation (requires Doxygen)" BUILD_DOCS)
option (BUILD_BENCH "Build benchmark (requires GBench)" BUILD_BENCH)

if (RELEASE_BUILD)
add_compile_options(-O2)
Expand Down Expand Up @@ -145,6 +150,7 @@ set (zipkin_DEPENDENCIES
${GFLAGS_LIBRARIES}
${THRIFT_LIBRARIES}
${LibRDKafka_LIBRARIES}
${LibRDKafka_C_LIBRARIES}
${ZLIB_LIBRARIES}
${OPENSSL_LIBRARIES}
${FOLLY_STATIC_LIBRARY}
Expand Down
6 changes: 3 additions & 3 deletions bench/BenchSpan.cpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include <benchmark/benchmark_api.h>
#include <benchmark/benchmark.h>

#include <utility>

Expand Down Expand Up @@ -231,7 +231,7 @@ void bench_span_serialize_binary(benchmark::State &state)
<< std::make_pair(zipkin::TraceKeys::CLIENT_SEND, false) << endpoint
<< std::make_pair(zipkin::TraceKeys::CLIENT_SEND, L"hello world");

boost::shared_ptr<apache::thrift::transport::TMemoryBuffer> buf(new apache::thrift::transport::TMemoryBuffer());
std::shared_ptr<apache::thrift::transport::TMemoryBuffer> buf(new apache::thrift::transport::TMemoryBuffer());
apache::thrift::protocol::TBinaryProtocol protocol(buf);

while (state.KeepRunning())
Expand Down Expand Up @@ -291,4 +291,4 @@ void bench_span_serialize_pretty_json(benchmark::State &state)

BENCHMARK(bench_span_serialize_pretty_json);

BENCHMARK_MAIN();
BENCHMARK_MAIN();
24 changes: 13 additions & 11 deletions bench/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -std=c++11 -Wno-invalid-offsetof")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CXX_FLAGS}")
if (BUILD_BENCH)
set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -std=c++11 -Wno-invalid-offsetof")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CXX_FLAGS}")

set (zipkin_bench_SRCS
BenchSpan.cpp
)
set (zipkin_bench_SRCS
BenchSpan.cpp
)

add_executable(bench ${zipkin_bench_SRCS})
add_executable(bench ${zipkin_bench_SRCS})

target_link_libraries(bench
zipkin
${zipkin_DEPENDENCIES}
${GBENCH_LIBRARY}
)
target_link_libraries(bench
zipkin
${zipkin_DEPENDENCIES}
${GBENCH_LIBRARY}
)
endif ()
180 changes: 180 additions & 0 deletions ci/Dockerfile-centos-7
Original file line number Diff line number Diff line change
@@ -0,0 +1,180 @@
FROM centos/devtoolset-4-toolchain-centos7

USER root

RUN rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm && \
yum repolist

RUN yum -y update && \
yum -y install \
autoconf \
autoconf-archive \
automake \
boost-devel \
boost-test \
bzip2 \
double-conversion-devel \
doxygen \
gflags-devel \
git \
glog-devel \
jemalloc-devel \
libcurl-devel \
libdwarf-devel \
libevent-devel \
libtool \
libunwind-devel \
lz4-devel \
lzma-sdk457 \
make \
openssl-devel \
scons \
snappy-devel \
wget \
zlib-devel && \
yum clean all

RUN scl -l devtoolset-4 && \
gcc --version && \
g++ --version

ENV CMAKE_DIR /cmake
ENV SRC_DIR /source
ENV DIST_DIR /dist
ENV BUILD_DIR /build
ENV EXT_DIR $BUILD_DIR/externals

ENV CMAKE_VERSION 3.8.2
RUN wget https://cmake.org/files/v3.8/cmake-$CMAKE_VERSION-Linux-x86_64.tar.gz && \
mkdir -p $CMAKE_DIR && \
tar xzvf cmake-$CMAKE_VERSION-Linux-x86_64.tar.gz -C $CMAKE_DIR --strip-components=1 && \
rm cmake-$CMAKE_VERSION-Linux-x86_64.tar.gz

ENV FOLLY_VERSION 2017.12.18.00
RUN wget https://github.com/facebook/folly/archive/v$FOLLY_VERSION.tar.gz -O folly-$FOLLY_VERSION.tar.gz && \
mkdir -p $EXT_DIR/src/Folly && \
tar xzvf folly-$FOLLY_VERSION.tar.gz -C $EXT_DIR/src/Folly --strip-components=1 && \
rm folly-$FOLLY_VERSION.tar.gz && \
cd $EXT_DIR/src/Folly/folly && \
autoreconf -vi && \
./configure \
--prefix=$EXT_DIR \
--with-pic \
LD_LIBRARY_PATH=$EXT_DIR/lib \
LD_RUN_PATH=$EXT_DIR/lib \
LIBRARY_PATH=$EXT_DIR/lib \
LDFLAGS=-L$EXT_DIR/lib \
PKG_CONFIG_PATH=$EXT_DIR/lib/pkgconfig \
CFLAGS=-I$EXT_DIR/include \
CXXFLAGS=-I$EXT_DIR/include \
CPPFLAGS=-I$EXT_DIR/include && \
make && \
make install && \
make clean && \
rm -rf $EXT_DIR/src/Folly/folly

ENV THRIFT_VERSION_STRING 0.11.0
RUN wget http://www-us.apache.org/dist/thrift/$THRIFT_VERSION_STRING/thrift-$THRIFT_VERSION_STRING.tar.gz && \
mkdir -p $EXT_DIR/src/Thrift && \
tar xzvf thrift-$THRIFT_VERSION_STRING.tar.gz -C $EXT_DIR/src/Thrift --strip-components=1 && \
rm thrift-$THRIFT_VERSION_STRING.tar.gz && \
cd $EXT_DIR/src/Thrift && \
./configure \
--prefix=$EXT_DIR \
--without-c_glib \
--without-csharp \
--without-dart \
--without-dotnetcore \
--without-erlang \
--without-go \
--without-java \
--without-lua \
--without-nodejs \
--without-php \
--without-py3 \
--without-python \
--without-qt4 \
--without-qt5 \
--without-rs \
--without-ruby \
--disable-tests \
--disable-plugin && \
make && \
make install && \
make clean && \
rm -rf $EXT_DIR/src/Thrift

ENV LibRDKafka_VERSION 0.11.3
RUN wget https://github.com/edenhill/librdkafka/archive/v$LibRDKafka_VERSION.tar.gz -O LibRDKafka-$LibRDKafka_VERSION.tar.gz && \
mkdir -p $EXT_DIR/src/LibRDKafka/build && \
tar xzvf LibRDKafka-$LibRDKafka_VERSION.tar.gz -C $EXT_DIR/src/LibRDKafka --strip-components=1 && \
rm LibRDKafka-$LibRDKafka_VERSION.tar.gz && \
cd $EXT_DIR/src/LibRDKafka/build && \
$CMAKE_DIR/bin/cmake \
-DRDKAFKA_BUILD_EXAMPLES=OFF \
-DRDKAFKA_BUILD_TESTS=OFF \
-DCMAKE_INSTALL_PREFIX=$EXT_DIR \
-DCMAKE_PREFIX_PATH=$EXT_DIR \
$EXT_DIR/src/LibRDKafka/ && \
make && \
make install && \
make clean && \
rm -rf $EXT_DIR/src/LibRDKafka

ENV RAPIDJSON_VERSION 1.1.0
RUN wget https://github.com/miloyip/rapidjson/archive/v$RAPIDJSON_VERSION.tar.gz -O RapidJSON-$RAPIDJSON_VERSION.tar.gz && \
mkdir -p $EXT_DIR/src/RapidJSON/build && \
tar xzvf RapidJSON-$RAPIDJSON_VERSION.tar.gz -C $EXT_DIR/src/RapidJSON --strip-components=1 && \
rm RapidJSON-$RAPIDJSON_VERSION.tar.gz && \
cd $EXT_DIR/src/RapidJSON/build && \
$CMAKE_DIR/bin/cmake \
-DCMAKE_INSTALL_PREFIX=$EXT_DIR \
-DCMAKE_PREFIX_PATH=$EXT_DIR \
-DRAPIDJSON_BUILD_DOC=OFF \
-DRAPIDJSON_BUILD_EXAMPLES=OFF \
-DRAPIDJSON_BUILD_TESTS=OFF \
$EXT_DIR/src/RapidJSON/ && \
make && \
make install && \
make clean && \
rm -rf $EXT_DIR/src/RapidJSON

ENV GTEST_VERSION 1.8.0
RUN wget https://github.com/google/googletest/archive/release-$GTEST_VERSION.tar.gz -O GTest-$GTEST_VERSION.tar.gz && \
mkdir -p $EXT_DIR/src/GTest/build && \
tar xzvf GTest-$GTEST_VERSION.tar.gz -C $EXT_DIR/src/GTest --strip-components=1 && \
rm GTest-$GTEST_VERSION.tar.gz && \
cd $EXT_DIR/src/GTest/build && \
$CMAKE_DIR/bin/cmake \
-DCMAKE_INSTALL_PREFIX=$EXT_DIR \
-DCMAKE_PREFIX_PATH=$EXT_DIR \
$EXT_DIR/src/GTest/ && \
make && \
make install && \
make clean && \
rm -rf $EXT_DIR/src/GTest

ENV GBENCH_VERSION 1.1.0
RUN wget https://github.com/google/benchmark/archive/v$GBENCH_VERSION.tar.gz -O GBench-$GBENCH_VERSION.tar.gz && \
mkdir -p $EXT_DIR/src/GBench/build && \
tar xzvf GBench-$GBENCH_VERSION.tar.gz -C $EXT_DIR/src/GBench --strip-components=1 && \
rm GBench-$GBENCH_VERSION.tar.gz && \
cd $EXT_DIR/src/GBench/build && \
$CMAKE_DIR/bin/cmake \
-DCMAKE_INSTALL_PREFIX=$EXT_DIR \
-DCMAKE_PREFIX_PATH=$EXT_DIR \
-DBENCHMARK_ENABLE_TESTING=OFF \
-DBENCHMARK_ENABLE_LTO=ON \
$EXT_DIR/src/GBench/ && \
make && \
make install && \
make clean && \
rm -rf $EXT_DIR/src/GBench

ENV ZIPKIN_VERSION 0.3.1

COPY ./docker-entrypoint.sh /

ENTRYPOINT ["/docker-entrypoint.sh"]

CMD ["release"]
Loading