コンテンツにスキップ

C++ アプリケーション導入


C++ アプリケーションのメトリクスデータを収集し、可視化してアプリケーションパフォーマンスを分析します。現在、C++ SDK は Windows および Linux プラットフォームに対応しています。

読み進め方

前提条件

注意

RUM Headless サービスを既に有効にしている場合、前提条件は自動で設定されているため、アプリケーションを直接導入できます。

アプリケーション導入

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
cd vcpkg

# カスタム設定の registries ファイルをダウンロード
curl -o vcpkg-configuration.json https://static.guance.com/ft-sdk-package/vcpkg_config/vcpkg-configuration.json 

bootstrap-vcpkg.bat
vcpkg install datakit-sdk-cpp:x64-windows
vcpkg integrate install
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})

ヘッダーの参照

#include "datakit-sdk-cpp/FTSDKFactory.h"

初期化の説明

最小限の初期化サンプルはクイックスタートをご覧ください。

完全な初期化と実行時の機能の説明はSDK 初期化をご覧ください。

詳細設定のエントリ

高度なシナリオ

よくある質問

グローバル変数にプレフィックスを追加してフィールド競合を回避

カスタムフィールドと SDK データの競合を避けるため、タグ名には プロジェクトの略称 をプレフィックスとして付けることを推奨します(例:custom_tag_name)。プロジェクトで使用される予約済み keyソースコードで確認できます。

SDK のグローバル変数に RUM や Log と同じフィールドが存在する場合、RUM や Log の同名フィールドが SDK のグローバル変数を上書きします。

導入が成功したかどうかを素早く確認する方法

まずはクイックスタートに従って最小限の初期化を行い、enable_sdk_log デバッグログを有効にした後、ViewAction、または Log の報告を手動でトリガーし、コンソールでデータが表示されるか確認することを推奨します。

初期化してもデータが表示されない場合

以下の項目を優先的に確認してください:

  • setServerUrl で設定した DataKit のアドレスに現在のデバイスからアクセスできるか
  • setRumAppId が正しく設定されているか
  • 前提条件 の DataKit と RUM 収集器の設定が完了しているか
  • 現在のプラットフォームが C++ SDK でサポートされている Windows または Linux であるか

問題が特定できない場合は、トラブルシューティングをご覧ください。

フィードバック

このページは役に立ちましたか?