C++ アプリケーション導入¶
C++ アプリケーションのメトリクスデータを収集し、可視化してアプリケーションパフォーマンスを分析します。現在、C++ SDK は Windows および Linux プラットフォームに対応しています。
読み進め方¶
- 初回導入:クイックスタート をご覧ください
- 完全導入:引き続き本記事をお読みください
- パラメータ詳細:SDK 初期化、RUM 設定、Log 設定、Trace 設定 をご覧ください
- カスタム機能:カスタムタグ、カスタム収集ルール をご覧ください
- 問題解決:トラブルシューティング をご覧ください
前提条件¶
注意
RUM Headless サービスを既に有効にしている場合、前提条件は自動で設定されているため、アプリケーションを直接導入できます。
- DataKit をインストールします。
- RUM 収集器 を設定します。
- DataKit をパブリックネットワークからアクセス可能にし、IP 地理位置情報ライブラリをインストール します。
アプリケーション導入¶
Guance コンソールにログインし、ユーザーアクセス監視 ページに移動して、左上の アプリケーションを作成 をクリックし、新しいアプリケーションの作成を開始します。
作成が完了したら、アプリケーションに対応する RUM App ID を記録してください。これは後で FTRUMConfig を初期化する際に必要です。
インストール¶
ソースコード:https://github.com/GuanceCloud/datakit-cpp
デモ:https://github.com/GuanceCloud/datakit-cpp/ft-sdk-sample
git clone https://github.com/microsoft/vcpkg
# apt install ninja-build
# apt install pkg-config
./vcpkg/bootstrap-vcpkg.sh
cd vcpkg
# カスタム設定の registries ファイルをダウンロード
curl -o vcpkg-configuration.json https://static.guance.com/ft-sdk-package/vcpkg_config/vcpkg-configuration.json
# arm 64 の場合は VCPKG_FORCE_SYSTEM_BINARIES を追加
#export VCPKG_FORCE_SYSTEM_BINARIES=1
./vcpkg install datakit-sdk-cpp:x64-linux
# ビルド環境で VCPKG_ROOT 変数を参照
export VCPKG_ROOT= [ your_vcpkg_root_dir ]
CMake 設定を追加
cmake_minimum_required(VERSION 3.0)
project(ft-sdk-reference-sample VERSION 1.0.0 LANGUAGES CXX C)
add_definitions(-fPIC -g -Werror=return-type)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -O1 -ftree-vectorize -ffast-math ")
set(CMAKE_CXX_STANDARD 17)
if(DEFINED ENV{VCPKG_ROOT})
if (EXISTS "$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake")
include ("$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake")
set(VCPKG_CMAKE_SHARE "$ENV{VCPKG_ROOT}/installed/${VCPKG_TARGET_TRIPLET}/share"
CACHE STRING "TEST")
endif ()
else ()
message(STATUS "please set the system environment variable : VCPKG_ROOT" $ENV{VCPKG_ROOT})
endif ()
# Guance SDK 参照を追加
find_path(FT-SDK_INCLUDE_DIR datakit-sdk-cpp/FTSDK.h)
find_library(FT-SDK_LIBRARY ft-sdk "${FT-SDK_INCLUDE_DIR}/../lib/")
include_directories(${FT-SDK_INCLUDE_DIR})
file(GLOB PROJECT_SOURCE "*.cpp")
file(GLOB PROJECT_HEADER "../include/*.h" "*.h")
add_executable (${PROJECT_NAME} ${PROJECT_SOURCE} ${PROJECT_HEADER})
# SDK をリンク
target_link_libraries(${PROJECT_NAME} PRIVATE ${FT-SDK_LIBRARY})
ヘッダーの参照¶
初期化の説明¶
最小限の初期化サンプルはクイックスタートをご覧ください。
完全な初期化と実行時の機能の説明はSDK 初期化をご覧ください。
詳細設定のエントリ¶
高度なシナリオ¶
よくある質問¶
グローバル変数にプレフィックスを追加してフィールド競合を回避¶
カスタムフィールドと SDK データの競合を避けるため、タグ名には プロジェクトの略称 をプレフィックスとして付けることを推奨します(例:custom_tag_name)。プロジェクトで使用される予約済み key はソースコードで確認できます。
SDK のグローバル変数に RUM や Log と同じフィールドが存在する場合、RUM や Log の同名フィールドが SDK のグローバル変数を上書きします。
導入が成功したかどうかを素早く確認する方法¶
まずはクイックスタートに従って最小限の初期化を行い、enable_sdk_log デバッグログを有効にした後、View、Action、または Log の報告を手動でトリガーし、コンソールでデータが表示されるか確認することを推奨します。
初期化してもデータが表示されない場合¶
以下の項目を優先的に確認してください:
setServerUrlで設定した DataKit のアドレスに現在のデバイスからアクセスできるかsetRumAppIdが正しく設定されているか- 前提条件 の DataKit と RUM 収集器の設定が完了しているか
- 現在のプラットフォームが C++ SDK でサポートされている Windows または Linux であるか
問題が特定できない場合は、トラブルシューティングをご覧ください。
