OpenTelemetry C++-Client-SDK-Paket
Das OpenTelemetry C++ Client SDK-Paket ist ein OpenTelemetry OTLP-Exporter für C++. Dieses Paket hilft Ihnen, OpenTelemetry Instrumentierung in Ihre Anwendungen einzubinden. Anschließend können die Daten über das OTLP-Protokoll an Instana gesendet werden. Das Paket ist auf Opentelemetry-cpp aufgebaut.
Unterstützte Betriebssysteme
- Linux : Ubuntu 20.04 (GCC 9.4.0 ) (64-bit)
- Windows: Windows Server 2016 (Visual Studio Enterprise 2019) (32-Bit und 64-Bit)
Voraussetzungen
Prüfen Sie, ob die folgenden Voraussetzungen erfüllt sind:
- Linux:
GNU Compiler Collection (GCC) 9.4.0 oder höher ist installiert.
Git, Python 3, und Perl installiert sind.
vcpkg wird durch Ausführen des folgenden Befehls installiert:
git clone https://github.com/Microsoft/vcpkg.git ./vcpkg/bootstrap-vcpkg.sh ./vcpkg/vcpkg install abseil ./vcpkg/vcpkg install c-ares ./vcpkg/vcpkg install curl[non-http,openssl,ssl] ./vcpkg/vcpkg install grpc[codegen]
- Windows-Plattformen:
- MSVC oder MinGW Compiler mit CMake ist installiert.
- CMake oder Visual Studio 2019 ist installiert.
- Um CMake zu installieren, besuchen Sie die offizielle CMake-Website und laden Sie den Windows-Installer für die neueste stabile Version von CMake herunter. Wählen Sie die für Ihr System geeignete Version, entweder 32-Bit oder 64-Bit.
- Um Visual Studio 2019 zu installieren, gehen Sie zur Visual Studio-Downloadseite und laden Sie das Visual Studio Windows-Installationsprogramm herunter. Starten Sie das Installationsprogramm, das Sie heruntergeladen haben. Während des Installationsprozesses müssen Sie Workloads auswählen, d. h. eine Reihe von Tools und Komponenten für bestimmte Entwicklungsszenarien. Wenn Sie den MSVC-Compiler installieren, wählen Sie die Arbeitslast Desktop-Entwicklung mit C++.
- vcpkg wird durch Ausführen der folgenden Befehle installiert:
git clone https://github.com/Microsoft/vcpkg.git .\vcpkg\bootstrap-vcpkg.cmd .\vcpkg.exe integrate .\vcpkg.exe install abseil .\vcpkg.exe install c-ares .\vcpkg.exe install curl .\vcpkg.exe install grpc
Paket installieren
Um das Paket zu installieren, laden Sie die Paketdatei herunter und entpacken Sie sie in ein lokales Verzeichnis.
- Linux : Laden Sie die Datei opentelemetry-cpp-1.9.1-gcc9.4.0-ubuntu20.04_x64.tar.gz und entpacken Sie die Datei mit folgendem Befehl:
tar xzf opentelemetry-cpp-1.9.1-gcc9.4.0-ubuntu20.04_x64.tar.gz
- Windows (64 Bit): Laden Sie die Datei opentelemetry-cpp-1.9.1-vs2019-windows_x64.zip datei herunter, und extrahieren Sie die Datei mit folgendem Befehl:
unzip opentelemetry-cpp-1.9.1-vs2019-windows_x64.zip
- Windows (32 Bit): Laden Sie die Datei opentelemetry-cpp-1.9.1-vs2019-windows_x86.zip datei herunter, und extrahieren Sie die Datei mit folgendem Befehl
unzip opentelemetry-cpp-1.9.1-vs2019-windows_x86.zip
Installation überprüfen
Führen Sie die folgenden Schritte aus, um zu überprüfen, ob das OpenTelemetry C++ Client SDK-Paket auf Ihrem Host-Rechner funktioniert:
Laden Sie die Beispiele von OpenTelemetry herunter.
Laden Sie die Dateien
grpc_main.ccundhttp_main.ccvon Opentelemetry-cpp Beispiel OTeL herunter. Speichern Sie sie dann im Verzeichnisotlp.Laden Sie die Dateien
foo_library.ccundfoo_libary.hvon Opentelemetry-cpp example foo_library herunter. Speichern Sie sie dann im Verzeichnisotlp/foo_library.
Erstellen Sie eine Datei
CMakeLists.txtim Verzeichnisotlp.Linux:
cmake_minimum_required(VERSION 3.12.0) project(sample) set(CMAKE_CXX_STANDARD 14) set(OTEL_CPP_DIR "/opt/otel-cppclient/opentelemetry-cpp_x64-linux") set(OTEL_LIBS_PATH "${OTEL_CPP_DIR}/lib") set(VCPKGL_LIBS_PATH "<path to vcpkg>/installed/x64-linux/lib") include_directories("${OTEL_CPP_DIR}/include") find_package(absl REQUIRED) find_package(Protobuf CONFIG REQUIRED) find_package(CURL REQUIRED) find_package(gRPC REQUIRED) # HTTP add_executable(otel_http_sample http_main.cc "foo_library/foo_library.cc" ) target_link_libraries(otel_http_sample -pthread ${OTEL_LIBS_PATH}/libopentelemetry_trace.a ${OTEL_LIBS_PATH}/libopentelemetry_proto.a ${OTEL_LIBS_PATH}/libopentelemetry_http_client_curl.a ${OTEL_LIBS_PATH}/libopentelemetry_exporter_otlp_http.a ${OTEL_LIBS_PATH}/libopentelemetry_exporter_otlp_http_client.a ${OTEL_LIBS_PATH}/libopentelemetry_logs.a ${OTEL_LIBS_PATH}/libopentelemetry_otlp_recordable.a ${OTEL_LIBS_PATH}/libopentelemetry_common.a ${OTEL_LIBS_PATH}/libopentelemetry_trace.a ${OTEL_LIBS_PATH}/libopentelemetry_resources.a ${VCPKGL_LIBS_PATH}/libprotobuf.a ${VCPKGL_LIBS_PATH}/libcurl.a ${VCPKGL_LIBS_PATH}/libssl.a ${VCPKGL_LIBS_PATH}/libcrypto.a -lpthread -ldl ${VCPKGL_LIBS_PATH}/libz.a ) # GRPC add_executable(otel_grpc_sample grpc_main.cc "foo_library/foo_library.cc" ) target_link_libraries(otel_grpc_sample -pthread ${OTEL_LIBS_PATH}/libopentelemetry_trace.a ${OTEL_LIBS_PATH}/libopentelemetry_exporter_otlp_grpc.a -pthread ${OTEL_LIBS_PATH}/libopentelemetry_otlp_recordable.a ${OTEL_LIBS_PATH}/libopentelemetry_trace.a ${OTEL_LIBS_PATH}/libopentelemetry_logs.a ${OTEL_LIBS_PATH}/libopentelemetry_resources.a ${OTEL_LIBS_PATH}/libopentelemetry_metrics.a ${OTEL_LIBS_PATH}/libopentelemetry_common.a ${OTEL_LIBS_PATH}/libopentelemetry_exporter_otlp_grpc_client.a ${OTEL_LIBS_PATH}/libopentelemetry_proto.a ) target_link_libraries(otel_grpc_sample absl::flat_hash_map absl::strings absl::str_format) target_link_libraries(otel_grpc_sample gRPC::gpr gRPC::grpc gRPC::grpc++ gRPC::grpc++_alts)Windows:
cmake_minimum_required(VERSION 3.12.0) project(otel_sample) set(CMAKE_CXX_STANDARD 14) set(OTEL_CPP_DIR "C:/otel-cppclient/opentelemetry-cpp_x64-windows") set(OTEL_LIBS_PATH "${OTEL_CPP_DIR}/lib") set(CMAKE_TOOLCHAIN_FILE "<path to vcpkg>/scripts/buildsystems/vcpkg.cmake" CACHE STRING "Vcpkg toolchain file") include_directories("${OTEL_CPP_DIR}/include") find_package(absl REQUIRED) find_package(protobuf CONFIG REQUIRED) find_package(CURL REQUIRED) find_package(gRPC REQUIRED) # HTTP add_executable(otel_http_sample http_main.cc "foo_library/foo_library.cc" ) target_link_libraries(otel_http_sample ${OTEL_LIBS_PATH}/opentelemetry_proto.lib ${OTEL_LIBS_PATH}/opentelemetry_http_client_curl.lib ${OTEL_LIBS_PATH}/opentelemetry_exporter_otlp_http.lib ${OTEL_LIBS_PATH}/opentelemetry_exporter_otlp_http_client.lib ${OTEL_LIBS_PATH}/opentelemetry_logs.lib ${OTEL_LIBS_PATH}/opentelemetry_otlp_recordable.lib ${OTEL_LIBS_PATH}/opentelemetry_common.lib ${OTEL_LIBS_PATH}/opentelemetry_trace.lib ${OTEL_LIBS_PATH}/opentelemetry_resources.lib ) target_link_libraries(otel_http_sample absl::flat_hash_map absl::strings absl::str_format) target_link_libraries(otel_http_sample CURL::libcurl) target_link_libraries(otel_http_sample protobuf::libprotobuf) # GRPC add_executable(otel_grpc_sample grpc_main.cc "foo_library/foo_library.cc" ) target_link_libraries(otel_grpc_sample ${OTEL_LIBS_PATH}/opentelemetry_proto.lib ${OTEL_LIBS_PATH}/opentelemetry_proto_grpc.lib ${OTEL_LIBS_PATH}/opentelemetry_exporter_otlp_grpc.lib ${OTEL_LIBS_PATH}/opentelemetry_exporter_otlp_grpc_client.lib ${OTEL_LIBS_PATH}/opentelemetry_logs.lib ${OTEL_LIBS_PATH}/opentelemetry_otlp_recordable.lib ${OTEL_LIBS_PATH}/opentelemetry_common.lib ${OTEL_LIBS_PATH}/opentelemetry_trace.lib ${OTEL_LIBS_PATH}/opentelemetry_resources.lib ) target_link_libraries(otel_grpc_sample absl::flat_hash_map absl::strings absl::str_format) target_link_libraries(otel_grpc_sample gRPC::gpr gRPC::grpc gRPC::grpc++ gRPC::grpc++_alts)
Erstellen Sie die OpenTelemetry Beispiele, die Sie in Schritt 1 heruntergeladen haben, indem Sie die folgenden Befehle ausführen:
Linux:
cd otlp mkdir build cd ./build/ cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_SYSTEM_NAME=Linux -DCMAKE_VERBOSE_MAKEFILE=ON -DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=<path to vcpkg>/scripts/toolchains/linux.cmake -DCMAKE_TOOLCHAIN_FILE=<path to vcpkg>/scripts/buildsystems/vcpkg.cmake cmake --build .Windows:
cd otlp mkdir build cd .\build\ cmake .. -DCMAKE_TOOLCHAIN_FILE="<path to vcpkg>/scripts/buildsystems/vcpkg.cmake" cmake --build .
Testen Sie diese OpenTelemetry Beispiele, indem Sie die folgenden Schritte ausführen:
Installieren Sie den Instana-Host-Agenten.
Konfigurieren Sie den Instana-Agenten für den Empfang von OTLP-Daten.
Senden Sie auf demselben Host-Rechner die OTLP-Daten an den Host-Agenten, indem Sie einen der folgenden Befehle ausführen:
example_otlp_grpc localhost:4317example_otlp_http localhost:4318/v1/tracesWenn Sie eine Fehlermeldung sehen, überprüfen Sie das Host-Agent-Protokoll.